cancel
Showing results for 
Search instead for 
Did you mean: 

result_package not updating DSO fields

Former Member
0 Kudos

Dear All,

We have written end routine in DSO level.

When we debug the code i find all the fields are getting updated in result_package but when i load data to ODS then i dont find calcuated fields getting populated ... Only direct mapping fields are getting populated...

Here is the final part of code



LOOP AT e_t_result into e_s_result.
      READ TABLE lt_top_perf TRANSPORTING NO FIELDS
                  WITH KEY employee = e_s_result-employee.
      IF sy-subrc = 0.
        e_s_result-/bic/zma_num = lv_new_top.
        e_s_result-/bic/zma_perf = lv_act_top_p.
        e_s_result-/bic/zmi_num = lv_top.
        e_s_result-/bic/zmi_perf = '5'.
      ELSE.
        READ TABLE lt_high_perf TRANSPORTING NO FIELDS
                  WITH KEY employee = e_s_result-employee.
        IF sy-subrc = 0.
          e_s_result-/bic/zma_num = lv_new_high.
          e_s_result-/bic/zma_perf = lv_act_high_p.
          e_s_result-/bic/zmi_num = lv_high.
          e_s_result-/bic/zmi_perf = '15'.
        ELSE.
          READ TABLE lt_good_perf TRANSPORTING NO FIELDS
                  WITH KEY employee = e_s_result-employee.
          IF sy-subrc = 0.
            e_s_result-/bic/zma_num = lv_new_good.
            e_s_result-/bic/zma_perf = lv_act_good_p.
            e_s_result-/bic/zmi_num = lv_good.
            e_s_result-/bic/zmi_perf = '32'.
          ELSE.
            READ TABLE lt_middle_perf TRANSPORTING NO FIELDS
                    WITH KEY employee = e_s_result-employee.
            IF sy-subrc = 0.
              e_s_result-/bic/zma_num = lv_new_middle.
              e_s_result-/bic/zma_perf = lv_act_middle_p.
              e_s_result-/bic/zmi_num = lv_middle.
              e_s_result-/bic/zmi_perf = '45'.
            ELSE.
              READ TABLE lt_low_perf TRANSPORTING NO FIELDS
                      WITH KEY employee = e_s_result-employee.
              IF sy-subrc = 0.
                e_s_result-/bic/zma_num = lv_new_low.
                e_s_result-/bic/zma_perf = lv_act_low_p.
                e_s_result-/bic/zmi_num = lv_low.
                e_s_result-/bic/zmi_perf = '3'.
              ENDIF.
            ENDIF.
          ENDIF.
        ENDIF.
      ENDIF.
    ENDLOOP.
*    BREAK-POINT.
    REFRESH RESULT_PACKAGE.

    MOVE e_t_result[] TO RESULT_PACKAGE[].

Can you please tel me where are we going wrong.

Thanks & Regards,

Anup

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

In the transformation for these fields,set it as CONSTANT and leave it has blank...

rgds, Ghuru

Former Member
0 Kudos

Hi Ghuru,

Thanks for the response.

But end routine will take care of everything ,... why do we need to make the transformation as constant???

In debug mode result_package contains all the values but in DSO its not getting appended,

Regards,

Anup

Former Member
0 Kudos

If in the transformation, if the fields are not set as constant, it will be taken as no update and the data will not be updaed to the DSO....

rgds, Ghuru

Answers (1)

Answers (1)

Former Member
0 Kudos

In your transformation, next to delete end routine button you can find "Update Behaviour of Fields in the End routine" button.

click that button and select "All target fields (independent of active rules)" option.

Activate your transformation and re-run your dtp load. it will work fine.

--- Thanks