by Aliya3110 » Sun Jun 14, 2015 12:50 pm
Hallo Thomas,
danke für Deine Antwort.
Meine Daten werden aus XML gelesen und in die Z-Tabellen übernommen. Als Schlüsselfeld habe ich GUID, das neu generiert und in den Z-Tabellen übernommen wird. Inhaltlich muss ich die Daten nicht prüfen und Sperren brauche ich auch nicht, da ich die Datensätze nur in den Tabellen einfüge.
Um alle Z-Tabellen gebündelt zu aktualisieren, habe ich diese Verbuchungsbaustein angelegt. Leider kann ich nicht testen, da ich kein Zugriff auf dem Server habe. Stimmt der Verbuchungsfuba und der Aufruf? In dem Fuba, muss ich die Sy-Subrc nach der Modifikation nicht abfragen oder?
FUNCTION z_mm_luw_invoice_table.
*"----------------------------------------------------------------------
*"*"Update Function Module:
*"
*"*"Local Interface:
*" TABLES
*" TT_INVOICEHEADER TYPE ZTYMM_INVOICEHEADER
*" TT_ORDERS TYPE ZTYMM_ORDERS
*" TT_TERMOFPAYMENT TYPE ZTYMM_TERMOFPAYMENT
*" TT_ACCOUNTINGITEMS TYPE ZTYMM_ACCOUNTINGITEMS
*" TT_INVOICEITEMS TYPE ZTYMM_INVOICEITEMS
*" EXCEPTIONS
*" UPDATE_ERROR_ZMM_INVOICEHEAD
*" UPDATE_ERROR_ZMM_ORDERS
*" UPDATE_ERROR_ZMM_INVOICEITEMS
*" UPDATE_ERROR_ZMM_TERMOFPAYMEN
*" UPDATE_ERROR_ZMM_ACCOUNTING
*"----------------------------------------------------------------------
IF tt_invoiceheader IS NOT INITIAL.
MODIFY zmm_invoicehead FROM TABLE tt_invoiceheader.
IF sy-subrc = 0.
IF tt_orders IS NOT INITIAL.
MODIFY zmm_orders FROM TABLE tt_orders.
IF sy-subrc <> 0.
RAISE update_error_zmm_orders.
ENDIF.
ENDIF.
IF tt_invoiceitems IS NOT INITIAL.
MODIFY zmm_invoiceitems FROM TABLE tt_invoiceitems.
IF sy-subrc <> 0.
RAISE update_error_zmm_invoiceitems.
ENDIF.
ENDIF.
IF tt_termofpayment IS NOT INITIAL.
MODIFY zmm_termofpaymen FROM TABLE tt_termofpayment.
IF sy-subrc <> 0.
RAISE update_error_zmm_termofpaymen.
ENDIF.
ENDIF.
IF tt_accountingitems IS NOT INITIAL.
MODIFY zmm_accounting FROM TABLE tt_accountingitems.
IF sy-subrc <> 0.
RAISE update_error_zmm_accounting.
ENDIF.
ENDIF.
ELSE.
RAISE update_error_zmm_invoicehead.
ENDIF.
ENDIF.
ENDFUNCTION.
_________________________________________________________________________
METHOD modify_invoicetables.
CALL FUNCTION 'Z_MM_LUW_INVOICE_TABLE' IN UPDATE TASK
TABLES
tt_invoiceheader = it_invoiceheader
tt_orders = it_orders
tt_termofpayment = it_termofpayment
tt_accountingitems = it_accountingitems
tt_invoiceitems = it_invoiceitems
EXCEPTIONS
update_error_zmm_invoicehead = 1
update_error_zmm_orders = 2
update_error_zmm_invoiceitems = 3
update_error_zmm_termofpaymen = 4
update_error_zmm_accounting = 5
OTHERS = 6.
CASE sy-subrc.
WHEN 0.
COMMIT WORK.
WHEN 1.
RAISE EXCEPTION TYPE zcx_xml_document_base
EXPORTING
textid = zcx_xml_document_base=>update_error_invoicetable
gv_table = 'zmm_invoicehead'.
WHEN 2.
RAISE EXCEPTION TYPE zcx_xml_document_base
EXPORTING
textid = zcx_xml_document_base=>update_error_invoicetable
gv_table = 'zmm_orders'.
WHEN 3.
RAISE EXCEPTION TYPE zcx_xml_document_base
EXPORTING
textid = zcx_xml_document_base=>update_error_invoicetable
gv_table = 'zmm_invoiceitems'.
WHEN 4.
RAISE EXCEPTION TYPE zcx_xml_document_base
EXPORTING
textid = zcx_xml_document_base=>update_error_invoicetable
gv_table = 'zmm_termofpaymen'.
WHEN 5.
RAISE EXCEPTION TYPE zcx_xml_document_base
EXPORTING
textid = zcx_xml_document_base=>update_error_invoicetable
gv_table = 'zmm_accounting'.
WHEN 6.
RAISE EXCEPTION TYPE zcx_xml_document_base
EXPORTING
textid = zcx_xml_document_base=>update_error_invoicetable
gv_table = 'unknown error by updating the invoicetabellen'.
ENDCASE.
ENDMETHOD.