Issue in Check Function Module

Hi All,
Am doing a custom Workflow for Goods Movement.
In my Workflow am using the Triggering event "created" of Business Object "/SAPCEM/02".
I need to trigger my Workflow only for specific "Movement Type" (Eg. 551).
The Event Container is having only the values Material Document & Year. I have created a check function module in which I built the logic to get the MovementType(BWART) from table MSEG for the Material Document & raising exception in case of other than 551.
But the function module is not working as I expected. The problem is the MSEG table is not getting updated with the new Material Doc, while the Check Function Module is being called. (MSEG is updated after Check FM, it seems).  So no record in MSEG for our MaterialDoc during the call to check function module. So the query always fails.
I need to restrict my workflow for specific Movement Types(MSEG-BWART).
Could you please advice me in this ?
Regards,
Anbarasan K

I have absolutely no idea if this works, but you could try to place a check FM on the event only in transaction SWEINST with a wait up to 1 second statement in it.
Maybe, just maybe then you can properly use the check FM on the event-->WF in SWE2.
Alternatively if you are of the opinion that the data should be updated when the event is triggered you could raise an OSS message (obviously search OSS first to see if this has come up previously)
Kind regards, Rob Dielemans

Similar Messages

  • Performance issue for this function-module(HR_TIM_REPORT_ABSENCE_DATA)

    Hi Friends
    I am having performance issue for this function-module(HR_TIM_REPORT_ABSENCE_DATA) and one my client got over 8 thousend employees . This function-module taking forever to read the data. is there any other function-module to read the absences data IT2001 .
    I did use like this .if i take out this F.M 'HR_TIM_REPORT_ABSENCE_DATA_INI' its not working other Function-module.please Suggest me .
    call function 'HR_TIM_REPORT_ABSENCE_DATA_INI'
    exporting "Publishing to global memory
    option_string = option_s "string of sel org fields
    trig_string = trig_s "string of req data
    alemp_flag = sw_alemp "all employee req
    infot_flag = space "split per IT neccessary
    sel_modus = sw_apa
    importing
    org_num = fdpos_lines "number of sel org fields
    tables
    fieldtab = fdtab "all org fields
    field_sel = fieldnametab_m. "sel org fields
    To Read all infotypes from Absences type.
    RP_READ_ALL_TIME_ITY PN-BEGDA PN-ENDDA.
    central function unit to provide internal tables: abse orgs empl
    call function 'HR_TIM_REPORT_ABSENCE_DATA'
    exporting
    pernr = pernr-pernr
    begda = pn-begda
    endda = pn-endda
    IMPORTING
    SUBRC = SUBRC_RTA
    tables
    absences = absences_01
    org_fields = orgs
    emp_fields = empl
    REFTAB =
    APLTAB =
    awart_sel_p = awart_s[]
    awart_sel_a = awart_s[]
    abstp_sel = abstp_s[]
    i0000 = p0000
    i0001 = p0001
    i0002 = p0002
    i0007 = p0007
    i2001 = p2001
    i2002 = p2002
    i2003 = p2003.
    Thanks & Regards
    Reddy

    guessing will not help you much, check with SE30 to get a better insight
    SE30
    The ABAP Runtime Trace (SE30) -  Quick and Easy
    what is the total time, what are the Top 10 in the hitlist.
    Siegfried

  • How to use Check Function Module???

    Hi Friends,
    How to use Check Function Module in Workflow???
    My requirement is to trigger the workflow at the last line item of the Material Document.
    Rewards for sure for helpful answer.
    -Satish

    Hi Satish,
    You know, the real power of forums like these is the search functionality. First you locate the correct forum, you succeeded in that and then you locate the search field and type in your question. In your case "check function module"
    I suggest you do this right away and be amazed at all of the answers about his topic. Maybe you'll even find some topic about exactly the same issue with a different solution than check function modules and on top of that you learn something this way. Talk about win-win situation
    Kind regards, Rob Dielemans

  • How do I "see" a check function module in the debugger?

    I am correctly starting a custom workflow based on an event raised by standard SAP code in transaciton QE51N.
    I have to write a check function module to interrogate the event and start/not start
    the workflow because the same event is raised by SAP code in transaction QA02, and I have to be sure to start the workflow only if the event is raised in QE51N, not QA02.  (I also have to check some other properties of the QALS row for the inspection lot.)
    I know how to code the check function module, but if I need to debug it, how do I "set-up" for seeing the check function module in the debugger?
    I'm sure this is an obvious question and that I'm missing something simple.
    So thanks in advance for the answer.
    djh

    Dear DJH,
    Put a break-point in the function module and process the transaction. It will stop at runtime.
    Hope this will help.
    Regards,
    Naveen.

  • Error messages in CRM2007 web ui from check function module

    Hi Experts,
    I want to display a warning/error in CRM webUI from my check function module. Moreover, in CRM GUI if i write a message like
    MESSAGE ID 'ZCRM' TYPE 'W' NUMBER '000'
                    WITH 'Warning Message'.
    it exits the transaction.
    Can anyone please suggest how do I go about this.
    Warm Regards,
    Abdullah

    Hi Dhawani,
    Hi Pavan,
    Can you please elaborate...how this will help??
    Thanks
    Dhwani
    I dont know the specific reason but internally there may some inconsistancy but i faced the same error and i tried with saving it in the package.
    Thanks

  • Issue with gui_download function module

    Hi All,
             I have an issue with gui_download function module that it is creating one extra line while downloading my internal table data into text file,which i donot want.i have searched for various threads but couldnot get the proper reply.Or please provide me some other Function Module which will not create one extra line.Please help.

    part 2
    INCLUDE RPPPXD00.
    DATA : BEGIN OF COMMON PART A.
    INCLUDE RPPPXD10.
    DATA : END OF COMMON PART.
    INCLUDE PC2RXTW0.
    INCLUDE RPC2RX00.
    DATA : BEGIN OF COMMON PART B.
    INCLUDE RPC2CD00.
    DATA : END OF COMMON PART.
    INCLUDE RPPPXM00.
    INCLUDE RPCMGR00.
    AT SELECTION-SCREEN OUTPUT.
      CONCATENATE SY-DATUM2(6) SY-UZEIT0(4) INTO REF_NO.
      LOOP AT SCREEN.
        IF R1 = 'X'.
          IF SCREEN-NAME = 'FLN' OR SCREEN-NAME = '%_FLN_%_APP_%-TEXT' OR
             SCREEN-NAME = 'BTC'  OR SCREEN-NAME = '%_BTC_%_APP_%-TEXT' OR
            SCREEN-NAME = 'PY_DT' OR SCREEN-NAME = '%_PY_DT_%_APP_%-TEXT'"SOC BY ANKITA"
           OR SCREEN-NAME = 'ORG_ID' OR SCREEN-NAME = '%_ORG_ID_%_APP_%-TEXT'
           OR SCREEN-NAME = 'ORG_AC' OR SCREEN-NAME = '%_ORG_AC_%_APP_%-TEXT'
           OR SCREEN-NAME = 'DEPT_CD' OR SCREEN-NAME = '%_DEPT_CD_%_APP_%-TEXT'
           OR SCREEN-NAME = 'REF_NO' OR SCREEN-NAME = '%_REF_NO_%_APP_%-TEXT'
           OR SCREEN-NAME = 'PRS_BNK' OR SCREEN-NAME = '%_PRS_BNK_%_APP_%-TEXT'
           OR SCREEN-NAME = 'TRANS_TY' OR SCREEN-NAME = '%_TRANS_TY_%_APP_%-TEXT'
           OR SCREEN-NAME = 'TRANS_ID' OR SCREEN-NAME = '%_TRANS_ID_%_APP_%-TEXT'
           OR SCREEN-NAME = 'TRANS_RK' OR SCREEN-NAME = '%_TRANS_RK_%_APP_%-TEXT'."EOC BY ANKITA
            SCREEN-ACTIVE = 0.
          ENDIF.
        ENDIF.
        IF R2 = 'X'.
          IF SCREEN-NAME = 'FLN' OR SCREEN-NAME = '%_FLN_%_APP_%-TEXT' OR
             SCREEN-NAME = 'BTC'  OR SCREEN-NAME = '%_BTC_%_APP_%-TEXT' OR
             SCREEN-NAME = 'PREPBY' OR SCREEN-NAME = '%_PREPBY_%_APP_%-TEXT'
             OR SCREEN-NAME = 'APROBY' OR SCREEN-NAME = '%_APROBY_%_APP_%-TEXT'
             OR SCREEN-NAME = 'PY_DT' OR SCREEN-NAME = '%_PY_DT_%_APP_%-TEXT' "SOC BY ANKITA
             OR SCREEN-NAME = 'ORG_ID' OR SCREEN-NAME = '%_ORG_ID_%_APP_%-TEXT'
             OR SCREEN-NAME = 'ORG_AC' OR SCREEN-NAME = '%_ORG_AC_%_APP_%-TEXT'
             OR SCREEN-NAME = 'DEPT_CD' OR SCREEN-NAME = '%_DEPT_CD_%_APP_%-TEXT'
             OR SCREEN-NAME = 'REF_NO' OR SCREEN-NAME = '%_REF_NO_%_APP_%-TEXT'
             OR SCREEN-NAME = 'PRS_BNK' OR SCREEN-NAME = '%_PRS_BNK_%_APP_%-TEXT'
             OR SCREEN-NAME = 'TRANS_TY' OR SCREEN-NAME = '%_TRANS_TY_%_APP_%-TEXT'
             OR SCREEN-NAME = 'TRANS_ID' OR SCREEN-NAME = '%_TRANS_ID_%_APP_%-TEXT'
             OR SCREEN-NAME = 'TRANS_RK' OR SCREEN-NAME = '%_TRANS_RK_%_APP_%-TEXT'."EOC BY ANKITA
            SCREEN-ACTIVE = 0.
          ENDIF.
        ENDIF.
        IF R3 = 'X'.
          IF SCREEN-NAME = 'PREPBY' OR SCREEN-NAME = '%_PREPBY_%_APP_%-TEXT'
            OR SCREEN-NAME = 'APROBY' OR SCREEN-NAME = '%_APROBY_%_APP_%-TEXT'
            OR SCREEN-NAME = 'PY_DT' OR SCREEN-NAME = '%_PY_DT_%_APP_%-TEXT' "SOC BY ANKITA
            OR SCREEN-NAME = 'ORG_ID' OR SCREEN-NAME = '%_ORG_ID_%_APP_%-TEXT'
            OR SCREEN-NAME = 'ORG_AC' OR SCREEN-NAME = '%_ORG_AC_%_APP_%-TEXT'
            OR SCREEN-NAME = 'REF_NO' OR SCREEN-NAME = '%_REF_NO_%_APP_%-TEXT'
            OR SCREEN-NAME = 'DEPT_CD' OR SCREEN-NAME = '%_DEPT_CD_%_APP_%-TEXT'
            OR SCREEN-NAME = 'PRS_BNK' OR SCREEN-NAME = '%_PRS_BNK_%_APP_%-TEXT'
            OR SCREEN-NAME = 'TRANS_TY' OR SCREEN-NAME = '%_TRANS_TY_%_APP_%-TEXT'
            OR SCREEN-NAME = 'TRANS_ID' OR SCREEN-NAME = '%_TRANS_ID_%_APP_%-TEXT'
            OR SCREEN-NAME = 'TRANS_RK' OR SCREEN-NAME = '%_TRANS_RK_%_APP_%-TEXT'."EOC BY ANKITA
            SCREEN-ACTIVE = 0.
          ENDIF.
        ENDIF.
        IF R4 = 'X'.
          IF SCREEN-NAME = 'PREPBY' OR SCREEN-NAME = '%_PREPBY_%_APP_%-TEXT'"SOC BY ANKITA
             OR SCREEN-NAME = 'APROBY' OR SCREEN-NAME = '%_APROBY_%_APP_%-TEXT'
             OR SCREEN-NAME = 'BTC'  OR SCREEN-NAME = '%_BTC_%_APP_%-TEXT'."EOC BY ANKITA
            SCREEN-ACTIVE = 0.
          ENDIF.
        ENDIF.
        MODIFY SCREEN.
      ENDLOOP.
    START-OF-SELECTION.
      SELECT SINGLE * FROM T549Q WHERE PERMO = '01'
                                 AND   PABRJ = PRD+0(4)
                                 AND   PABRP = PRD+4(2).
      FR_DT = T549Q-BEGDA.
      TO_DT = T549Q-ENDDA.
      CONCATENATE FR_DT0(4) FR_DT4(2) INTO FR_P.
      CONCATENATE TO_DT0(4) TO_DT4(2) INTO TO_P.
      PN-PAPER = PRD.
      PN-PERMO = '01'.
    GET PERNR.
      RP-PROVIDE-FROM-LAST P0003 SPACE PN-BEGDA PN-ENDDA.
      RP_PROVIDE_FROM_LAST P0001 SPACE PN-BEGDA PN-ENDDA.
      IF PNP-SW-FOUND EQ 1.
       SN = SN + 1.
       ITAB1-SNO = SN.
       ITCC-SNO = SN.
        ITAB1-ENO = PERNR-PERNR.
        ITAB1-NAM = PERNR-ENAME.
      ELSE.
        REJECT.
      ENDIF.
      RP-INIT-BUFFER.
      RP-SEL-CALC.
      CALL FUNCTION 'RP_EVALUATION_PERIODS'
        EXPORTING
          LAST_CALCULATED_DAY = P0003-ABRDT
          LAST_DAY_IN_PERIOD  = TO_DT
          RETROCALCULATED_DAY = RP-SEL-CALC-RRDAT
        TABLES
          DIR                 = RGDIR
          EVP                 = EVP
        EXCEPTIONS
          RGDIR_EMPTY         = 1
          INTERNAL_ERROR      = 2
          OTHERS              = 3.
      DESCRIBE TABLE EVP LINES LIN.
      IF LIN > 0.
        LOOP AT EVP.
          IF EVP-IAPER = TO_P AND EVP-PAPER = TO_P.
            RX-KEY-PERNR = PERNR-PERNR.
            UNPACK EVP-SEQNR TO RX-KEY-SEQNO.
            RP-IMP-C2-TN.
            READ TABLE BT INDEX 1.
            READ TABLE WPBP INDEX 1.
            READ TABLE TAX INDEX 1."CHANGES BY ANKITA
            ITAB1-BAC = BT-BANKN.
            ITAB1-BKEY = BT-BANKL .
            ITAB1-DEP = WPBP-KOSTL.
            ITAB1-BETRG = BT-BETRG."CHANGES BY ANKITA
            ITAB1-TAXID = TAX-TAXID."CHANGES BY ANKITA
            YEAR = VERSC-PAYDT+0(4) - 11.
            MONTH = VERSC-PAYDT+4(2).
            DAY = VERSC-PAYDT+6(2).
            CONCATENATE YEAR MONTH DAY INTO ITAB1-PDT.
           ITAB1-PDT = VERSC-PAYDT - 110000.
            ITCC-DEP = WPBP-KOSTL.
            LOOP AT RT WHERE LGART = '/559'.
              ITAB1-BTFR = RT-BETRG.
              ITCC-BTFR = RT-BETRG.
             IF EVP-SRTZA = 'P'.
               ITAB1-BTFR = ITAB1-BTFR - RT-BETRG.
             ELSE.
               ITAB1-BTFR = ITAB1-BTFR + RT-BETRG.
             ENDIF.
            ENDLOOP.
          ENDIF.
        ENDLOOP.
      ENDIF.
      APPEND: ITAB1, ITCC.
      CLEAR: ITAB1, ITCC.
    END-OF-SELECTION.
      CONCATENATE 'Prepared By:' ` ` PREPBY INTO PREPBY.
      CONCATENATE 'Approved By:' ` ` APROBY INTO APROBY.
      IF R1 = 'X'.
        FORMAT COLOR 2.
        ULINE (127).
        NEW-LINE.
        WRITE: 2 'Sr No.', 10 'Emp Num', 27 'Name'.
        WRITE: 57 'Department'.
        WRITE: 72 '  Transfer Amount' RIGHT-JUSTIFIED.
        WRITE: 92 'Bank Key', 107 'Bank AC. Number'.
        WRITE:1 '|', 8 '|', 25 '|', 55 '|', 70 '|', 90 '|', 105 '|', 127 '|'.
        NEW-LINE.
        ULINE (127).
        NEW-LINE.
        FORMAT COLOR OFF.
        LOOP AT ITAB1.
          SN = SY-TABIX.
          WRITE: 2 SN, 10 ITAB1-ENO, 27 ITAB1-NAM.
          WRITE: 57 ITAB1-DEP.
          WRITE: 72 ITAB1-BTFR.
          WRITE: 92 ITAB1-BKEY, 107 ITAB1-BAC.
          WRITE: 1 '|', 8 '|', 25 '|', 55 '|', 70 '|', 90 '|', 105 '|', 127 '|'.
          ULINE (127).
          NEW-LINE.
        ENDLOOP.
        SKIP 4.
        ULINE 90(32).
        NEW-LINE.
        WRITE: 90 PREPBY.
        SKIP 4.
        ULINE 90(32).
        NEW-LINE.
        WRITE: 90 APROBY.
      ENDIF.
      IF R2 = 'X'.
        LOOP AT ITCC.
          COLLECT ITCC INTO ITCOL.
        ENDLOOP.
        FORMAT COLOR 2.
        ULINE (44).
        NEW-LINE.
        WRITE:2 'Sr No.', 9 'Department'.
        WRITE: 27 'Transfer Amount  ' RIGHT-JUSTIFIED.
        WRITE:1 '|', 8 '|', 25 '|', 44 '|'.
        NEW-LINE.
        ULINE (44).
        NEW-LINE.
        FORMAT COLOR OFF.
        LOOP AT ITCOL.
          SN = SY-TABIX.
          WRITE: 2 SN, 9 ITCOL-DEP, 27 ITCOL-BTFR.
          WRITE:1 '|', 8 '|', 25 '|', 44 '|'.
          NEW-LINE.
          ULINE (44).
          NEW-LINE.
        ENDLOOP.
      ENDIF.
      IF R3 = 'X'.
        LOOP AT ITAB1.
          CLEAR: ITTF, P3, P11, P13, P6, V_BAC.
          LEN = STRLEN( ITAB1-BKEY ).
          IF LEN < 3.
            CONCATENATE ITAB1-BKEY '***' INTO P3.
          ELSE.
          LEN = LEN - 3.
            LEN = 3.
            P3 = ITAB1-BKEY+LEN(3).
          ENDIF.
          CLEAR LEN.
          V_BAC = ITAB1-BAC.
          REPLACE ALL OCCURRENCES OF '-' IN ITAB1-BAC WITH ''.
          CONDENSE ITAB1-BAC NO-GAPS.
          LEN = STRLEN( ITAB1-BAC )."if length of acc num > limit
          IF LEN > 11.
            IT_FAIL-EN = ITAB1-ENO.
            IT_FAIL-BA = V_BAC.
            APPEND IT_FAIL.
            CLEAR: IT_FAIL.
            CONTINUE.
          ENDIF.
          P11 = ITAB1-BAC.
          CONCATENATE P11 '***********' INTO P11.
    above step is for putting '' in place of unfilled chars of P11.
          P13 = ITAB1-BTFR * 100.
          P6 = ITAB1-PDT+2(6).
          CONCATENATE ` ` P3 P11 BTC P13 P6 INTO STR.
          ITTF-ROW = STR.
          APPEND ITTF.
        ENDLOOP.
        IF ITTF[] IS NOT INITIAL.
          CONCATENATE FLN SY-DATUM SY-UZEIT '.txt' INTO FILEPATH.
          CALL FUNCTION 'GUI_DOWNLOAD'
          EXPORTING
            FILENAME                        = FILEPATH
            FILETYPE                        = 'ASC'
         WRITE_FIELD_SEPARATOR           = 'X'
            TABLES
            DATA_TAB                        = ITTF
         OTHERS                          = 22
          SKIP 2.
          IF SY-SUBRC <> 0.
            WRITE:/ 'Unable to Download file at ', FILEPATH.
          ELSE.
            WRITE:/ 'File with following data downloaded at ', FILEPATH.
            NEW-LINE.
            SKIP 2.
            LOOP AT ITTF.
              WRITE:/ ITTF.
            ENDLOOP.
          ENDIF.
        ELSE.
          WRITE 'No Data, no file was downloaded'.
        ENDIF.
        IF IT_FAIL[] IS NOT INITIAL.
          SKIP 2.
          FORMAT COLOR 2.
          WRITE 'Acc. No. of following employees exceeded the length limit'.
          WRITE:/ 'So their entry was not created in the file'.
          SKIP 1.
          WRITE : 'Employee Number', 20 'Bank Acc. No.'.
          FORMAT COLOR OFF.
          LOOP AT IT_FAIL.
            NEW-LINE.
            WRITE : IT_FAIL-EN, 20 IT_FAIL-BA.
          ENDLOOP.
        ENDIF.
      ENDIF.
      IF R4 = 'X'."CHANGES BY ANKITA
        WRITE:/ 'ERROR LOG - BANK A/C NO. CONTAINS ALPHANUMERIC'.
        WRITE:/ 'EMPID' COLOR COL_POSITIVE,12 '|',15 'Receiving Bank Code' COLOR COL_POSITIVE,
                                                                      40 '|','Receiver A/C No' COLOR COL_POSITIVE.
        PERFORM EXTRACT_DATA.
        SKIP 2.
      ENDIF."EOC
      RP-READ-PAYROLL-DIR.
    Edited by: ANKITA BHARDWAJ on Dec 9, 2009 10:36 AM

  • Some issue with the Function Module u0093'SKWF_FIND_BY_QUERY' in a BW ECC6.0

    Hi All,
    Need some urgent help..
    Iam facing some issue with the Function Module “'SKWF_FIND_BY_QUERY' in a BW ECC6.0 system.
    As shown below, in the function module, the Table “IT_PROPERTIES_RESULT” gets populated with some values based on inputs like IT_CLASSES, IT_QUERY, and ‘L’.
    This updation of “IT_PROPERTIES_RESULT” table is happening for some of the services sent through IT_QUERY and is not getting populated for some.
      call function 'SKWF_FIND_BY_QUERY
    exporting
      CONNECTION_SPACE         =
        OBJ_TYPE                 = 'L'
      PTYPE                    =
      X_STRICT                 =
    IMPORTING
      ERROR                    =
         tables
         CLASSES                  = IT_CLASSES
         QUERIES                  = IT_QUERY
         RESULT_OBJECTS           = IT_LOIO
      PROPERTIES_REQUEST       = PROPERTIES_RESULT        = IT_PROPERTIES_RESULT.
    The values are as follows:-
    Values getting populated in IT_CLASSES – BW_LO_TRAN               Values getting populated in IT_QUERY – 1) BW_QUERY, 2) /BIC/ZSERVICE
    I would like to know whether any Standard Customizing BW transaction is present that is maintaining “IT_PROPERTIES_RESULT” table properties  and fetching through this Function Module.
    Also, suggest how this issue can be resolved
    Thanks & Regards,
    Shailesh nagar

    Thanks Suhas. That definitely helped.
    Also the following links helped.
    http://help.sap.com/saphelp_nw70/helpdata/EN/86/1c8c3e94243446e10000000a114084/frameset.htm
    /people/siegfried.szameitat/blog/2005/09/29/generic-extraction-via-function-module
    Cheers,
    Preethi

  • Read workitem Container Value in Terminating event Check Function Module

    Hi
    I have some problems reading work item data / values of a work item container element in a check function module on a terminating event – Do any of you know if this is possible, and if so, how it’s done ?
    In My scenario I have created a multiline approval step for my business document, one task pr Line Owner.  The Event Approved is defined as a terminating event for this task, and the line owner is passed to the task container.
    Now, when I raise the event, with the line owner as an event parameter, I would like to check if the line owner on the raised event, matches the line owner in the task container in question in a check fm. But here I faced the problem, that only event data, and not work item data, are passed to the Check Function module.
    Regards,
    Morten Nielsen

    Hello Morten, hello Arghadip,
    in the instance linkage's check function module (entered via transaction SWEINST) you'll have the workitem-id in the system event parameter EVTRECEIVER_ID
    With this number you can use the frame work in order to read the work item container.
    This is a sample coding, how you access the correct work item container using SAP Enterprise and it's new OO frame work, which checks on the terminating event of BUS2105.Released the correct release code for a work item.
    INCLUDE <cntn01>.
    INCLUDE <SWFCNTN01>.
    INCLUDE RSWEINCL.
    *** Read workitem instance and container from event
           DATA: wi_id            TYPE swwwihead-wi_id.
           swc_get_element EVENT_CONTAINER evt_receiver_id wi_id.
           IF sy-subrc <> 0.
              MESSAGE E015(ZPREL) WITH evt_receiver_id
                                           RAISING wrong_call.
           ENDIF.
           DATA: lv_wi_handle    TYPE REF TO if_swf_run_wim_internal.
           DATA: ls_context      TYPE sww_wimctx.
           DATA: lv_wi_container TYPE REF TO if_swf_cnt_container.
    *    - set context
           ls_context-do_commit  = ' '.
           ls_context-called_btc = 'X'.
           ls_context-exec_user  = sy-uname.
           ls_context-fbname     = 'Z_CHECK_RELEASE_CODE'.
           CLEAR lv_wi_handle.
           CALL METHOD cl_swf_run_wim_factory=>initialize( ).
           CALL METHOD cl_swf_run_wim_factory=>find_by_wiid
                   EXPORTING
                      im_wiid             = wi_id
                      im_read_for_update  = ' '
    *                 im_enqueue_owner    = fb_name
    *                 im_wait_for_enqueue = 'X'
                      im_context          = ls_context
                   RECEIVING
                      re_instance         = lv_wi_handle.
    *** This check is only done for workitem linkage TS90100081
           IF lv_wi_handle->m_sww_wihead-wi_rh_task <> 'TS90100081'. "#EC_SYNTEXT
              EXIT. "Let event pass, as this is an instance linkage to another workitem
           ENDIF.
           DATA: releaseCode_wi        TYPE t16fc-frgco.
    *    - read releaseCode from workitem container
           lv_wi_container = lv_wi_handle->get_wi_container( ).
    *    - perform binding event container -> workitem container
           swf_get_element lv_wi_container 'RELEASECODE' releaseCode_wi.
          DATA: e             TYPE REF TO cx_swf_run_wim.
          CATCH cx_swf_run_wim INTO e.
             RAISE WORKFLOW_RUNTIME_ERROR.
       ENDTRY.
    *** From here on, the variable releaseCode_WI hold the
    *** container element RelaseCode of the work item, that
    *** is going to be terminated...
    *** Further coding from here as appropriate...
    Best regards,
    Florin

  • Check Function Module is not working

    Hi All Expert,
    I'm new in workflow and  develop custom workflow for Transaction FB65 ( Vendor Credit Memo) and using business object FIPP , event CREATED.
    Actually  requirement is that when user  click on park button in FB65 then should  be trigger workflow only for particular vendor code .
    Now my workflow is working fine for all vendor code.
    For particular vendor code, I have created an new entries in  SWE2 and assigning a check function module to that
    Refer Link :         http://www.****************/Tutorials/Workflow/checkfunctionmodule/demo.htm
    and also same entries create in SWETYPV But Check Function Module is not working before workflow trigger.
    Appreciate your help and support.
    Regards
    Saurabh

    Hi
    : Check FM  : ZWF_DR_CR_MEMO 
    SourceCode :
    FUNCTION ZWF_DR_CR_MEMO.
    *"*"Local Interface:
    *"  IMPORTING
    *"     VALUE(OBJTYPE) LIKE  SWETYPECOU-OBJTYPE
    *"     VALUE(OBJKEY) LIKE  SWEINSTCOU-OBJKEY
    *"     VALUE(EVENT) LIKE  SWETYPECOU-EVENT
    *"     VALUE(RECTYPE) LIKE  SWETYPECOU-RECTYPE
    *"  EXPORTING
    *"     REFERENCE(RESULT) TYPE  C
    *"  TABLES
    *"      EVENT_CONTAINER STRUCTURE  SWCONT
    *"  EXCEPTIONS
    *"      NOT_TRIGGERED
    BREAK-POINT.
    TABLES : VBSEGK.
      DATA : LV_VEND TYPE VBSEG-LIFNR.
      CLEAR : LV_VEND.
      SELECT SINGLE  LIFNR FROM  VBSEGK INTO LV_VEND WHERE BELNR EQ OBJKEY.
        if sy-subrc eq 0
          IF LV_VEND = '0000120510'.
            RAISE NOT_TRIGGERED.
          ENDIF
      endif.
    ENDFUNCTION.

  • Doubt in Check Function module

    Hi all,
    I have created a parameter(mulitline) for an event (in SW01) and I am using a check function module to check the conditions.
    My problem is I am able to get the '_EVT_OBJECT' (object instance) in the check FM and not able to get the event's parameter (which i created for that event) in the check FM. In the log it says, "Container element xxxx doesnot exists".
    May I know whether is it possible to send the event parameter to the Event_container of the check FM. Please help in this regard. As I am placing a breakpoint in the check FM but it doesnot stops.
    P.S. I am using ZBUS2012 (delegation of BUS2012) and I redefined the event "Changed" and I added a multiline parameter with respect to DB field.
    Regards,
    V Kumar

    Hi,
    I am using a macro.
    SWC_GET_TABLE EVENT_CONTAINER 'IM_NETWR' T_NETWR.
    IM_NETWR is my mutiline element for the event "Changed". It will have the old and new value of the net price. I need to trigger the workflow if there is a change in price.
    I Know it is possible with SWEC, but i need to validate some condition, which i am not able to give in SWEC, so I am using Check FM. Please help.
    If i use both SWEC and check FM whether it will give any problem?
    Regards,
    V Kumar
    Edited by: V Kumar on Aug 14, 2009 1:37 PM

  • Check function module & start condition

    Dear friends
    Could any1 of u tel me th exact diff bet th both..
    In whic case u go for check FM and in whic case u ll go for start condition.
    regards
    sakthi

    Hi Sakthi,
    Basically both serve the same purpose that is perform some checks based on conditions which when satisfied trigger the workflow.
    However, a start condition is configured within the header of the workflow itself. Hence, the fields which we can use as part of the start condition are what are available in the workflow containers, mostly attributes of the business object being used.
    Whereas in a check function module, we can program very complicated calculations and validations, by using SELECT queries etc. which are not possible in start conditions.
    Hence basically, difference between them is the start condition is restricted in its use and can implement simple checks, whereas a check function module can be more complex.
    Cheers,
    Aditya

  • Check function module

    hi friends
    what does the check function module and receiver function module do?
    what is the usage of these function module?
    Explain details
    Regards
    vijay

    Hi,
    Using check function module you can trigger the work flow under some conditions.
    For example you are using PO workflow. If plant 1000 means only you want to trigger the work flow means you can write the code in ordinary Function module and then you can make it as a check function module.
    Start condition and the check function module has the same functionlity.
    SWW_WI_CREATE_VIA_EVENT is the Receiver function module, which is responsible for triggering the workflows (for all Workflows in SWE2). This will be assigned automatically when the linkage (SWE2) is created. This function module is common for all.
    Edited by: Viji on Mar 27, 2008 1:37 PM

  • Start conditions and check function modules

    Hi,
    When we apply start conditions to any particular even linkage you will find check function module as SWB_2_CHECK_FB_START_COND_EVAL. However, what if i want to implement both a custom check function module AND start conditions ?
    My requirement is to implement both start conditions and check function module.
    Is this possible ?
    Thank you,
    Nikhil.

    Hi,
    You can use both of the things, however its advisable to check all start conditions if you are using check FM.
    This is interface for custom  check FM,once you have the key value, you can put all the checks here
    *"*"Local Interface:
    *"  IMPORTING
    *"     VALUE(OBJTYPE) TYPE  SWETYPECOU-OBJTYPE
    *"     VALUE(OBJKEY) TYPE  SWEINSTCOU-OBJKEY
    *"     VALUE(EVENT) TYPE  SWETYPECOU-EVENT
    *"     VALUE(RECTYPE) TYPE  SWETYPECOU-RECTYPE
    *"  EXPORTING
    *"     REFERENCE(REFERENCE) TYPE  C
    *"  TABLES
    *"      EVENT_CONTAINER STRUCTURE  SWCONT
    *"  EXCEPTIONS
    *"      NOT_TRIGGERD
    Hope this helps.
    Regards,
    Sangvir Singh

  • CU65 Variant Function cannot be released - check function module interface

    Hi ,
    Getting this error while Releasing the variant Function in CU66. Function Module trigerred by this function is of the same name as well as correctly acitvated and released , but while releasing the Function I get this error :  'Function cannot be released - check function module interface' . Following are two characeteristics that are maintained in the variant function :
    1. Customer_Type
    2. Maintenance_Contract
    While executing the Function Module alone I get Raise Inernal Exception i.e it is not identifying the argument name 'Maintenance_Contract' in the FM 'CUOV_GET_FUNCTION_ARGUMENT' exception
    Below is the code for reference . Pls point out if any mistakes :
    ""Local Interface:
    *"  IMPORTING
    *"     REFERENCE(GLOBALS) TYPE  CUOV_00
    *"  CHANGING
    *"     REFERENCE(ZQUERY) TYPE  ZQUERY
    *"     REFERENCE(ZMATCH) TYPE  ZMATCH
    *"  EXCEPTIONS
    *"      FAIL
    *"      INTERNAL_ERROR
    " Data Declaration
    DATA : l_main LIKE CUOV_01-atwrt,
             l_cust LIKE CUOV_01-atwrt.
    " Get value of Input Characteristic Maintenance Contract
      call function 'CUOV_GET_FUNCTION_ARGUMENT'
        exporting
          argument            = 'MAINTENANCE_CONTRACT'
       IMPORTING
          SYM_VAL             = l_main
        tables
          query               = ZQUERY
        EXCEPTIONS
          ARG_NOT_FOUND       = 1
      if sy-subrc <> 0.
      RAISE INTERNAL_ERROR.
      endif.
      " Get value of Input Characteristic Customer Type
      call function 'CUOV_GET_FUNCTION_ARGUMENT'
        exporting
          argument            = 'CUSTOMER_TYPE'
       IMPORTING
          SYM_VAL             = l_cust
       tables
          query               = ZQUERY
        EXCEPTIONS
          ARG_NOT_FOUND       = 1
      if sy-subrc <> 0.
      RAISE INTERNAL_ERROR.
      endif.
       IF l_main EQ 'NO'.
        IF l_cust EQ 'CURRENT'.
          l_cust = 'NEW'.
        ELSEIF l_cust EQ 'VAR CURRENT'.
          l_cust = 'VAR NEW'.
         ENDIF.
         ENDIF.
    " Set value for the output characteristic
         call function 'CUOV_SET_FUNCTION_ARGUMENT'
           exporting
             argument                      = 'CUSTOMER_TYPE'
             vtype                         = 'CHAR'
             SYM_VAL                       = l_cust
           NUM_VAL                       =
           tables
             match                         = ZMATCH
           EXCEPTIONS
             EXISTING_VALUE_REPLACED       = 1

    ZMATCH and ZQUERY are two table types created in SE11 , both of type CUOV_01.

  • Difference between check function module and start condition

    Hello Rob,
    In  previous answer u said thr is no difference between check function module and startcondition but there is a difference between checkfunction module and start condition.
    Before the workflow is triggering can u able to check the conditions in startcondition.The startcondition can check the condition only after the workflow has been triggered.
    But in check function module u can check the condtion before the workflow got triggered.

    Kjetil,
    Dont' fall for it, these two (unless deephak and catherina are the same person...)  are just spamming the forum.
    <a href="https://forums.sdn.sap.com/click.jspa?searchID=1763105&messageID=3206751">https://forums.sdn.sap.com/click.jspa?searchID=1763105&messageID=3206751</a>
    <a href="https://forums.sdn.sap.com/click.jspa?searchID=1763105&messageID=3206440">https://forums.sdn.sap.com/click.jspa?searchID=1763105&messageID=3206440</a>
    <a href="https://forums.sdn.sap.com/click.jspa?searchID=1763105&messageID=3207214">https://forums.sdn.sap.com/click.jspa?searchID=1763105&messageID=3207214</a>
    <a href="https://forums.sdn.sap.com/click.jspa?searchID=1763105&messageID=3207179">https://forums.sdn.sap.com/click.jspa?searchID=1763105&messageID=3207179</a>
    As you've correctly established, even the SAP documentation contradicts their nonsense. A start condition is implemented as a check function, so there is no difference; and NO workflow is started at any time if they fail.
    Cheers,
    Mike

Maybe you are looking for

  • Get File Information using the Document ID in Javascript

    I store in a custom list the Document Id of a linked document. I need to retrieve some metadata - at least the filename - of that document. I have tried using the Search REST API specifying something like "DocID:INGX1-2-26" in my search query, but no

  • Premiere Pro CC crashes on Launch

    I just installed (and reinstalled) Premiere Pro CC. When I try to launch, I get to "Loading ImporterQuickTime.prm" and it crashes. I'm running on a Win 7 Professional SP-1, with an Intel i7 processor and an Nvidia GTX 660 (Driver version: 320.49). Th

  • Doing stuff at Application Server startup

    Hi all, Sorry I have to post it here but my posts in "Java Programming' are not showing up. How can I do some stuff when the application server is starting up. I am using JBoss 3.2.3. At the Application Server startup I want to read a Properties file

  • Availability of the 1 gb N200 in the

    Creative, Alternati'vely to the Zen Micro I could be interested in the gb version of the N200, but it is listed as 'not available yet' on every retailer but is available for backorder. Any idea when this device (any color) will be available? And can

  • Below mentioned failed to install: shared technologies

    need help...cant install adobe photoshop elements 10...tried doing the adobe support adivisor nothing happen.