Check FM does not work

R Tannert tnn at ornl.gov
Wed Oct 24 09:54:15 EDT 2001


Patrick,
 
One thing you could do is to specify all of the document types that
are relevant for payment release.  Here are three paths to this
dialog:
 
1) transaction OBWQ.
 
2) transaction ORFB, menu path Bus. transactions -> Workflow ->
Payment release -> Relevant doc. types
 
3) IMG path Financial Accounting -> Accounts Receivable and Accounts
Payable -> Business Transactions -> Release for Payment -> Define
relevant document types for release for payment
 
We have only six document types that are subject to approval before
release, and this is what we do.  Regardless of the number of
document types you have, this is the approach I would advocate since
it uses delivered SAP functionality.  The online help for this is
useful.
 
In other cases such as this where, due to a design flaw, the workflow
event is generated before the associated data is stored in the
database, another approach is to use a receiver function module in
place of a check function module, since you are assured (almost
always) that the data will be available when the receiver function
module is invoked.  The receiver function module invokes the
appropriate workflow by calling  SWW_WI_START_SIMPLE if the necessary
conditions are met.  I use this technique in cases where I need to
either execute an automatic approval or start a workflow, depending
on the situation.  If you use this approach, the workflow should not
have a triggering event defined for it.
 
Rob
 
>Hi workflowers.
>
>I want to trigger an approval workflow for all FI-AP documents, except for a
>FI document type "ZR". I have then linked my workflow to the event
>BSEG.CREATED with a "check" function module that raise an exception if the
>document type is ZR (via transaction SWE2).
>However, it looks like when posting an FI document, the function module is
>called before that the table BKPF is updated. So my select statement does
>not select anything, and the FM does therefore not raise an exception as
>expected. When I try to use the test tool "generate event" (transaction
>SWUE), it works fine (which is normal, because I am then working on an
>existing document.)
>
>I searched OSS to solve this problem without success. I also tried to put a
>"commit work" statement in the function module, but that gives an error
>message (a sap office Express info "Update was terminated") when trying to
>post the document, and it is not posted. Any help or tip to solve this would
>be very much appreciated.
>
>Thanks in advance & Kindest regards to all.
>
>Patrick de Valensart
>Associate IS Analyst
>Philip Morris Benelux M&S
>
>
>P.S. Here is my FM :
>
>FUNCTION Z_AP_WF_EVENT_CHECK_NOT_ZR.
>*"----------------------------------------------------------------------
>*"*"Update function module:
>*"
>*"*"Local interface:
>*"       IMPORTING
>*"             VALUE(OBJTYPE) LIKE  SWETYPECOU-OBJTYPE
>*"             VALUE(OBJKEY) LIKE  SWEINSTCOU-OBJKEY
>*"             VALUE(EVENT) LIKE  SWEINSTCOU-EVENT
>*"             VALUE(RECTYPE) LIKE  SWETYPECOU-RECTYPE
>*"       TABLES
>*"              EVENT_CONTAINER STRUCTURE  SWCONT
>*"       EXCEPTIONS
>*"              DO_NOT_TRIGGER
>*"----------------------------------------------------------------------
>   INCLUDE <CNTAIN>.
>   DATA : BEGIN OF KEY,
>            BUKRS LIKE BSEG-BUKRS,
>            BELNR LIKE BSEG-BELNR,
>            GJAHR LIKE BSEG-GJAHR,
>            BUZEI LIKE BSEG-BUZEI,
>          END OF KEY.
>   CLEAR KEY.
>   KEY = OBJKEY.
>* commit work.
>   SELECT SINGLE * FROM BKPF WHERE BUKRS = KEY-BUKRS
>                               AND BELNR = KEY-BELNR
>                               AND GJAHR = KEY-GJAHR.
>   IF BKPF-BLART EQ 'ZR'.
>     RAISE DO_NOT_TRIGGER.
>   ENDIF.
>
>ENDFUNCTION.
 


More information about the SAP-WUG mailing list