<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>Question Re: BPC Journal - BAdI UJJ_CALCULATED_AMOUNT - Save Problem in Financial Management Q&amp;A</title>
    <link>https://community.sap.com/t5/financial-management-q-a/bpc-journal-badi-ujj-calculated-amount-save-problem/qaa-p/708911#M21496</link>
    <description>&lt;P&gt;my bad &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;BR /&gt;I added code in my question.&lt;/P&gt;</description>
    <pubDate>Tue, 24 Jul 2018 15:15:47 GMT</pubDate>
    <dc:creator>chandramahaputra</dc:creator>
    <dc:date>2018-07-24T15:15:47Z</dc:date>
    <item>
      <title>BPC Journal - BAdI UJJ_CALCULATED_AMOUNT - Save Problem</title>
      <link>https://community.sap.com/t5/financial-management-q-a/bpc-journal-badi-ujj-calculated-amount-save-problem/qaq-p/708909</link>
      <description>&lt;P&gt;Dear Expert.&lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt;I have issue when implementing BAdI UJJ_CALCULATE_AMOUNT. Error occur when I save journal with some field is blank.&lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt;&lt;IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/attachments/storage/7/attachments/170983-2018-07-22-16-00-48.png" /&gt;&lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt;After that, I Trace checking condition for BAdI. I found Error have been raise in Class &lt;STRONG&gt;CL_UJJ_JRN_MGR&lt;/STRONG&gt; method &lt;STRONG&gt;CHECK_CALCULATED_AMOUNTS&lt;/STRONG&gt; in this line:&lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt;&lt;IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/attachments/storage/7/attachments/170984-2018-07-22-16-11-32.png" /&gt;&lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt;Intuitively I tried to make sure output of BAdI doesn't have empty dimension. so I change every dimension with value is blank to '#'. After I change all of it, journal can be saved. however, new problem is appeared when journal is post. &lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt;&lt;IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/attachments/storage/7/attachments/170985-2018-07-22-16-54-06.png" /&gt;&lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt;right now, I doesn't have any idea why this happen. &lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt;this is my BAdI code :&lt;/P&gt;
  &lt;PRE&gt;&lt;CODE&gt;method IF_UJJ_CALCULATED_AMOUNT~CALCULATE_AMOUNTS.
    constants:
        dim_acct                type uj_dim_name value 'ZGRPACCNO',
        dim_flow                type uj_dim_name value 'ZFLOW',


        closing_flow            type uj_dim_name value 'F_999',
        increase_flow           type uj_dim_name value 'F_410',
        decrease_flow           type uj_dim_name value 'F_420',


        net_income_cy_acct      type uj_dim_name value '0035000004',
        re_up_acct              type uj_dim_name value '0035000003'.


    data:
        ls_journal_amounts      type ujj_s_badi_ca_journal_amounts,
        ls_journal_amounts2     type ujj_s_badi_ca_journal_amounts,
        l_dim_member            type uj_dim_member,
        l_is_leaf_of_1          type abap_bool,
        l_tabkey                type tabkey,
        l_is_leaf_of_2          type abap_bool,
        l_is_leaf_of_f_tot      type abap_bool,
        l_acct_property         type uj_value,
        ls_amount_details       type ujj_s_badi_ca_amount,
        ls_amount               type ujj_s_badi_ca_amount,
        ls_amount2              type ujj_s_badi_ca_amount,
        lo_exception            type ref to cx_root,
        lo_static_check         type ref to cx_static_check,


        l_acct_value            type uj_value,
        l_flow_value            type uj_value,


        l_flow_is_available     type abap_bool,
        l_acct_is_available     type abap_bool,


        member_temp             type ujj_s_keymem.




    field-symbols:
        &amp;lt;fs_member&amp;gt;         type ujj_s_keymem,
        &amp;lt;fs_member_flow&amp;gt;    type ujj_s_keymem,
        &amp;lt;fs_member_acct&amp;gt;    type ujj_s_keymem,
        &amp;lt;fs_member_value&amp;gt;   type uj_value,
        &amp;lt;fs_amount&amp;gt;         type ujj_s_badi_ca_amount,
        &amp;lt;fs_jrn&amp;gt;            type ujj_s_badi_ca_journal.


* forever loop debug
*    data flag_debug type abap_bool VALUE abap_true.
*    WHILE flag_debug = abap_true.
*    ENDWHILE.


    try.
* loop through all journals
        loop at it_journals assigning &amp;lt;fs_jrn&amp;gt;.
            clear ls_journal_amounts.
            ls_journal_amounts-journal_id = &amp;lt;fs_jrn&amp;gt;-jrn_id.


* loop every line of journal
            loop at &amp;lt;fs_jrn&amp;gt;-amounts assigning &amp;lt;fs_amount&amp;gt;.
* get GL account
                l_tabkey = dim_acct.
                read table &amp;lt;fs_amount&amp;gt;-members assigning &amp;lt;fs_member&amp;gt; with key tabkey = l_tabkey.
                if sy-subrc EQ 0.
                    l_acct_value = &amp;lt;fs_member&amp;gt;-member.
                endif.


* get Flow
                l_tabkey = dim_flow.
                read table &amp;lt;fs_amount&amp;gt;-members assigning &amp;lt;fs_member&amp;gt; with key tabkey = l_tabkey.
                if sy-subrc EQ 0.
                    l_flow_value = &amp;lt;fs_member&amp;gt;-member.
                endif.


                ls_amount = &amp;lt;fs_amount&amp;gt;.
                clear ls_amount-members.
                loop at &amp;lt;fs_amount&amp;gt;-members assigning &amp;lt;fs_member&amp;gt;.
                    if &amp;lt;fs_member&amp;gt;-is_hdr_fld eq abap_false.
                        MOVE-CORRESPONDING &amp;lt;fs_member&amp;gt; TO member_temp.
                        IF member_temp-member = ''.
                            member_temp-member = '#'.
                        ENDIF.
                        append member_temp to ls_amount-members.
                    endif.
                endloop.


* get field symbol of GL account
                l_tabkey = dim_acct.
                read table ls_amount-members assigning &amp;lt;fs_member_acct&amp;gt; with key tabkey = l_tabkey.
                if sy-subrc EQ 0.
                    l_acct_is_available = abap_true.
                endif.
* get field symbol of Flow
                l_tabkey = dim_flow.
                read table ls_amount-members assigning &amp;lt;fs_member_flow&amp;gt; with key tabkey = l_tabkey.
                if sy-subrc EQ 0.
                    l_flow_is_available = abap_true.
                endif.
* check if both member flow and account is present
                if l_flow_is_available EQ abap_true and l_acct_is_available EQ abap_true.


* if Group Account is Balance Sheet
                    if l_acct_value &amp;gt;= '0010000000' and l_acct_value &amp;lt;= '0039999999'.
* create closing balance
                        if l_flow_value &amp;lt;&amp;gt; closing_flow.
                            &amp;lt;fs_member_flow&amp;gt;-member = closing_flow.
                            append ls_amount to ls_journal_amounts-amounts.
                        endif.
* if Group Account is Profit and Lost
                    elseif l_acct_value &amp;gt;= '0040000000' and l_acct_value &amp;lt;= '0089999999'.
* copy "profit and lost" data to profit and lost current year with flow is F_300
                        &amp;lt;fs_member_flow&amp;gt;-member = 'F_300'.
                        &amp;lt;fs_member_acct&amp;gt;-member = net_income_cy_acct.
                        append ls_amount to ls_journal_amounts-amounts.
* copy "profit and lost" data to profit and lost current year with flow is closing
                        &amp;lt;fs_member_flow&amp;gt;-member = closing_flow.
                        &amp;lt;fs_member_acct&amp;gt;-member = net_income_cy_acct.
                        append ls_amount to ls_journal_amounts-amounts.
                    elseif l_acct_value &amp;gt;= '0090000000' and l_acct_value &amp;lt;= '0099999999'.
                        if l_acct_value = '0091100001'.
                            &amp;lt;fs_member_flow&amp;gt;-member = 'F_308'.
                            &amp;lt;fs_member_acct&amp;gt;-member = '0034000001'.
                            append ls_amount to ls_journal_amounts-amounts.
                            &amp;lt;fs_member_flow&amp;gt;-member = closing_flow.
                            append ls_amount to ls_journal_amounts-amounts.
                        elseif l_acct_value = '0091100002'.
                            &amp;lt;fs_member_flow&amp;gt;-member = 'F_309'.
                            &amp;lt;fs_member_acct&amp;gt;-member = '0034000002'.
                            append ls_amount to ls_journal_amounts-amounts.
                            &amp;lt;fs_member_flow&amp;gt;-member = closing_flow.
                            append ls_amount to ls_journal_amounts-amounts.
                        elseif l_acct_value = '0091100003'.
                            &amp;lt;fs_member_flow&amp;gt;-member = 'F_315'.
                            &amp;lt;fs_member_acct&amp;gt;-member = '0034000006'.
                            append ls_amount to ls_journal_amounts-amounts.
                            &amp;lt;fs_member_flow&amp;gt;-member = closing_flow.
                            append ls_amount to ls_journal_amounts-amounts.
                        elseif l_acct_value = '0091100004'.
                            &amp;lt;fs_member_flow&amp;gt;-member = 'F_314'.
                            &amp;lt;fs_member_acct&amp;gt;-member = '0034000005'.
                            append ls_amount to ls_journal_amounts-amounts.
                            &amp;lt;fs_member_flow&amp;gt;-member = closing_flow.
                            append ls_amount to ls_journal_amounts-amounts.
                        elseif l_acct_value = '0091199998'.
                            &amp;lt;fs_member_flow&amp;gt;-member = 'F_310'.
                            &amp;lt;fs_member_acct&amp;gt;-member = '0034000004'.
                            append ls_amount to ls_journal_amounts-amounts.
                            &amp;lt;fs_member_flow&amp;gt;-member = closing_flow.
                            append ls_amount to ls_journal_amounts-amounts.
                        elseif l_acct_value = '0091105001'.
                            &amp;lt;fs_member_flow&amp;gt;-member = 'F_318'.
                            &amp;lt;fs_member_acct&amp;gt;-member = '0034100001'.
                            append ls_amount to ls_journal_amounts-amounts.
                            &amp;lt;fs_member_flow&amp;gt;-member = closing_flow.
                            append ls_amount to ls_journal_amounts-amounts.
                        elseif l_acct_value = '0091105002'.
                            &amp;lt;fs_member_flow&amp;gt;-member = 'F_317'.
                            &amp;lt;fs_member_acct&amp;gt;-member = '0034100002'.
                            append ls_amount to ls_journal_amounts-amounts.
                            &amp;lt;fs_member_flow&amp;gt;-member = closing_flow.
                            append ls_amount to ls_journal_amounts-amounts.
                        elseif l_acct_value = '0091200001'.
                            &amp;lt;fs_member_flow&amp;gt;-member = 'F_316'.
                            &amp;lt;fs_member_acct&amp;gt;-member = '0034000007'.
                            append ls_amount to ls_journal_amounts-amounts.
                            &amp;lt;fs_member_flow&amp;gt;-member = closing_flow.
                            append ls_amount to ls_journal_amounts-amounts.
                        endif.
                    endif.
                endif.
            endloop.
            if lines( ls_journal_amounts-amounts ) &amp;gt; 0.
                append ls_journal_amounts to et_calculated_amounts.
            endif.
        endloop.
    catch cx_root into lo_exception.
    raise exception type cx_ujj_exception
        exporting
            previous = lo_exception
            textid    = cx_ujj_exception=&amp;gt;ex_badi_exception.
    endtry.
endmethod.


&lt;/CODE&gt;&lt;/PRE&gt;
  &lt;P&gt;&lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt;note:&lt;BR /&gt;this is my system specification:&lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt;SAP NETWEAVER 7.5&lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt;&lt;IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/attachments/storage/7/attachments/170986-2018-07-22-17-02-43.png" /&gt;&lt;/P&gt;
  &lt;P&gt; &lt;/P&gt;
  &lt;P&gt;Kind Regard,&lt;BR /&gt;Chandra .M.P&lt;/P&gt;</description>
      <pubDate>Sun, 22 Jul 2018 10:07:02 GMT</pubDate>
      <guid>https://community.sap.com/t5/financial-management-q-a/bpc-journal-badi-ujj-calculated-amount-save-problem/qaq-p/708909</guid>
      <dc:creator>chandramahaputra</dc:creator>
      <dc:date>2018-07-22T10:07:02Z</dc:date>
    </item>
    <item>
      <title>Re: BPC Journal - BAdI UJJ_CALCULATED_AMOUNT - Save Problem</title>
      <link>https://community.sap.com/t5/financial-management-q-a/bpc-journal-badi-ujj-calculated-amount-save-problem/qaa-p/708910#M21495</link>
      <description>&lt;P&gt;Asking question about badi and nor providing badi code? Strange approach!&lt;/P&gt;</description>
      <pubDate>Sun, 22 Jul 2018 17:10:04 GMT</pubDate>
      <guid>https://community.sap.com/t5/financial-management-q-a/bpc-journal-badi-ujj-calculated-amount-save-problem/qaa-p/708910#M21495</guid>
      <dc:creator>former_member186338</dc:creator>
      <dc:date>2018-07-22T17:10:04Z</dc:date>
    </item>
    <item>
      <title>Re: BPC Journal - BAdI UJJ_CALCULATED_AMOUNT - Save Problem</title>
      <link>https://community.sap.com/t5/financial-management-q-a/bpc-journal-badi-ujj-calculated-amount-save-problem/qaa-p/708911#M21496</link>
      <description>&lt;P&gt;my bad &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;BR /&gt;I added code in my question.&lt;/P&gt;</description>
      <pubDate>Tue, 24 Jul 2018 15:15:47 GMT</pubDate>
      <guid>https://community.sap.com/t5/financial-management-q-a/bpc-journal-badi-ujj-calculated-amount-save-problem/qaa-p/708911#M21496</guid>
      <dc:creator>chandramahaputra</dc:creator>
      <dc:date>2018-07-24T15:15:47Z</dc:date>
    </item>
  </channel>
</rss>

