This lines of code can help you to do that:
Call Status(SaveGoodArgVals, False, "Actualizando Paso de Embarque: " & bxTZSOShipHeader.ShipperID.Trim, LOG_AND_DISP)
Call TranBeg(True)
serr6 = SqlFetch1(CSR_xTZSOStep, "select functionid, functionclass, seq from sostep where cpnyid = " & SParm(bpes.CpnyID.Trim) & " and sotypeid = " & SParm(bSOShipHeader.SOTypeID.Trim) & " and functionid = " & SParm(bSOShipHeader.NextFunctionID.Trim) & " and functionclass = " & SParm(bSOShipHeader.NextFunctionClass.Trim), bxTZSOStep)
serr7 = SqlFetch1(CSR_xTZSOStep, "select TOP 1 functionid, functionclass, seq from sostep where cpnyid = " & SParm(bpes.CpnyID.Trim) & " and sotypeid = " & SParm(bSOShipHeader.SOTypeID.Trim) & " and seq > " & SParm(bxTZSOStep.Sequence.Trim) & " and status <> 'D' order by seq", txTZSOStep)
Call sql(c1, "ADG_SOEvent_Create" & SParm(bpes.CpnyID.Trim) & SParm("") & SParm("MSHP") & SParm("") & SParm("40110") & SParm(bSOShipHeader.ShipperID.Trim) & SParm(bpes.UserId))
Call sql(c2, "ADG_SOEvent_Create" & SParm(bpes.CpnyID.Trim) & SParm("") & SParm("PINV") & SParm("") & SParm("40110") & SParm(bSOShipHeader.ShipperID.Trim) & SParm(bpes.UserId))
Call sql(c3, "EDSOShipHeader_EDAN_Insert" & SParm(bpes.CpnyID.Trim) & SParm(bSOShipHeader.ShipperID.Trim) & SParm("40110") & SParm(bpes.UserId))
Call sql(c4, "UPDATE SOShipHeader SET Lupd_DateTime = GETDATE(), NextFunctionID = " & SParm(txTZSOStep.FunctionID.Trim) & ", NextFunctionClass = " & SParm(txTZSOStep.FunctionClass.Trim) & " WHERE CpnyID = " & SParm(bpes.CpnyID.Trim) & " AND ShipperID = " & SParm(bSOShipHeader.ShipperID.Trim))
If (txTZSOStep.FunctionID.Trim = "4043000" AndAlso txTZSOStep.FunctionClass.Trim = "0100") OrElse serr7 = NOTFOUND Then
If serr7 = 0 Then
serr8 = SqlFetch1(CSR_xTZSOStep, "select functionid, functionclass, seq from sostep where cpnyid = " & SParm(bpes.CpnyID.Trim) & " and sotypeid = " & SParm(bSOShipHeader.SOTypeID.Trim) & " and functionid = " & SParm(txTZSOStep.FunctionID.Trim) & " and functionclass = " & SParm(txTZSOStep.FunctionClass.Trim), bxTZSOStep)
serr9 = SqlFetch1(CSR_xTZSOStep, "select TOP 1 functionid, functionclass, seq from sostep where cpnyid = " & SParm(bpes.CpnyID.Trim) & " and sotypeid = " & SParm(bSOShipHeader.SOTypeID.Trim) & " and seq > " & SParm(bxTZSOStep.Sequence.Trim) & " and status <> 'D' order by seq", txTZSOStep)
Call sql(c1, "ADG_SOEvent_Create" & SParm(bpes.CpnyID.Trim) & SParm("") & SParm("MSHP") & SParm("") & SParm("40110") & SParm(bSOShipHeader.ShipperID.Trim) & SParm(bpes.UserId))
Call sql(c3, "EDSOShipHeader_EDAN_Insert" & SParm(bpes.CpnyID.Trim) & SParm(bSOShipHeader.ShipperID.Trim) & SParm("40110") & SParm(bpes.UserId))
End If
Call sql(c4, "UPDATE SOShipHeader SET Lupd_DateTime = GETDATE(), NextFunctionID = '', NextFunctionClass = '', Status = 'C', Lupd_Prog = '40400' WHERE CpnyID = " & SParm(bpes.CpnyID.Trim) & " AND ShipperID = " & SParm(bSOShipHeader.ShipperID.Trim))
Call sql(c5, "UPDATE SOShipLine SET Lupd_DateTime = GETDATE(), Status = 'C', Lupd_Prog = '40400' WHERE CpnyID = " & SParm(bpes.CpnyID.Trim) & " AND ShipperID = " & SParm(bSOShipHeader.ShipperID.Trim))
End If
Call TranEnd()