ich möchte vom Archiv Objekte löschen hierfür möchte ich die Funktion DELETE_AO in einen Verbuchungsfunktionsbaustein einbauen. Ich mache dies jetzt zum ersten mal. Ich würde in meinem Verbuchungsbaustein den Fuba DELETE_AO einbauen.
Wie müsste meine FUBA aussehen?
Reicht es einfach einen FUBA anzulegen un din den Eigenschaften Verbuchung anzukreuzen.
Soll ich dann die Funktion mit CALL FUNCTION ... IN UPDATE TASK aufrufen?
Neuen FuBa anlegen.
Eigenschaft "Verbucherbaustein" auswählen.
Im Coding den Aufruf von DELETE_AO einbauen.
Wichtig: Die Parameter dürfen bei Verbucherbausteinen nicht "generisch" (kein LIKE usw.) sein. Am Besten Datentypen aus dem DDIC mit TYPE verwenden.
Dann im Programm, wo die Löschung vollzogen werden soll, den neuen Funktionsbaustein mit IN UPDATE TASK aufrufen und danach das COMMIT WORK ausführen, um die Verbuchung zu starten.
lg ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.
ich habe jetzt meinen Verbucherfunktionsbaustein aufgebaut:
In der Eigenschaften Verbuchungsbaustein mit Start sofort angeklickt. Diese ist wie folgt definiert:
FUNCTION Y_P_DEL_1.
*"----------------------------------------------------------------------
*"*"Verbuchungsfunktionsbaustein:
*"
*"*"Lokale Schnittstelle:
*" IMPORTING
*" VALUE(CMS1) TYPE SE1-V1
*" VALUE(CMS2) TYPE SE1-V2
*" VALUE(OBJ_ID) TYPE SE1-V3
*"----------------------------------------------------------------------
IF CMS1 IS NOT INITIAL.
DELETE FROM t1D WHERE sap_object = 'APL'
AND ob_id = OBJ_ID
AND dc_id = CMS1
AND arid = CMS2.
ENDIF.
ENDFUNCTION.
Wenn ich diese Funktion per
IF sy-subrc = 0.
CALL FUNCTION Y_P_DEL_1' IN UPDATE TASK
EXPORTING
cms1= document-cms_doc_id
cms2= document-cms_crep_id
obj_id = obj_id.
COMMIT WORK.
ENDIF.
aufrufe, kommt die Meldung "Verbuchung wurde abgebrochen".
Diese meldung kommt auch dann, wenn ich COMMIT WORK wegnehmen. Daraufhin haben ich das Delete in die Methode eingebaut. Dann macht er es.
Schau mal die ST22 bzw. die SM13 durch, warum die Verarbeitung abgebrochen wurde.
Vermutlich hast du einen Fehler in deinem (Verbucher-)Funktionsbaustein.
Ohne jetzt deine Datentypen (SE1-V1 bis SE1-V3) zu kennen, würde ich auf einen IMPORT_PARAMETER_TYPE_MISMATCH Fehler tippen:
Sprich die Typen von Parameter "cms1" und der Variable "document-cms_doc_id" passen nicht zusammen.
Deto auch "cms2"/"document-cms_crep_id" sowie "obj_id"/"obj_id".
lg ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.