Call Business Objects From BPM Using 4GL/ABL Code

ABL-4GL code Epicor

Interested in how to progress 4GL/ABL code to call Epicor business objects from a BPM? Good, we thought you might be.

Below is the source code that you can insert to automate Epicor business processes.

Here is the source.

{Bpm/Bpm.i &OBJECT_NAME=UD08 }
{core/CallContext/CallContext.i}
{bo/UD08/UD08_ds.i}
define input parameter iKey1 as character.
define input parameter iKey2 as character.
define input parameter iKey3 as character.

{&TRY_PRIVATE}
define variable morePages as logical.
define variable i as integer.
define variable hUD08 as handle.

RUN boUD08UD08.p PERSISTENT SET hUD08.

if VALID-HANDLE (hUD08) THEN DO:

RUN GetRows IN hUD08 (input “Key1 = ‘” + iKey1 + “‘ and Key2 = ‘” + iKey2 + “‘ and Key3 = ‘” + iKey3 + “‘”, input “”, {&output_dataset_UD08DataSet}, input 0, input 0, output morePages).
for each ttUD08:
message “good”.
RUN DeleteByID IN hUD08 (input ttUD08.Key1, input ttUD08.Key2, input ttUD08.Key3, input ttUD08.Key4, input ttUD08.Key5) NO-ERROR.
end.
RUN GetRows IN hUD08 (input “Key1 = ‘” + STRING(iKey1) + “‘”, input “”, {&output_dataset_UD08DataSet}, input 0, input 0, output morePages) NO-ERROR.

RUN GetaNewUD08 IN hUD08 ( {&input-output_dataset_UD08DataSet} ) NO-ERROR.

for each ttUD08 where ttUD08.RowMod = “A”:
assign ttUD08.Key1 = iKey1.
assign ttUD08.Key2 = iKey1.
assign ttUD08.Key3 = iKey3.
end.

RUN Update IN hUD08 ({&input-output_dataset_UD08DataSet}) NO-ERROR.
end.
else do:
message “Could not create handle to UD08.p!”.
end.

delete object hUD08.
{&CATCH_PRIVATE} ;

Can the experts at Datix help you with a problem?


While You’re Here:

Tech Stressed?

Top Posts

Subscribe For More Content