Need doc on Message Control idoc work flow

Hi,
       Can anyone give me step by step doc on Idoc related workflows. I have been assigned task on idoc related work flows i have no idea on idoc related wf.So plz suggest me a material.
Thanks,
Hari

Check this link
http://help.sap.com/saphelp_47x200/helpdata/en/c5/e4af23453d11d189430000e829fbbd/frameset.htm
Thanks
Arghadip

Similar Messages

  • Needs to stop mail going through work-flow related to Leave of Absence & se

    While running transactions Pa20/pa30..if it runs for Leave of absence with 5 as reason & separation with 5 as reason then the mail is going to employess due to work-floas it goes to all other actions & reasons.But we want to stop it for above mentioned only.How can we change logic in work-flow for this

    0000 infotype(actions) run with any reason like separation or long term disabilitymeans
    in Actions infotype the both are reasons right are your sure whether these are Actions reasons or action type ?
    In that case identify the Code Related to MASSN which is is acton type feild name and action reason is MASSG
    and deactivate for those two action type that will suffice the requirement right

  • File-to-Idoc, work flow trigger

    Hi All,
    I need on help in taking decision of the following scenario.
    1) I have a file contains multiple records
    2) If record starts with 00-02 i need to send the information to idoc processing
    3) If others (03-04 etc) I need to send the record information to particular mail-ids on base of 03 0r 04.
    4) If any record does not supprot mapping then also i need to send ionformation to particular persons.
    It would be greate help in taking design decision.
    Thanks and regards,
    venu.

    Hi Manish/ Venu,
    The RB SPLIT option is done in the INTERFACE DETERMINATION and not in RECEIVER DETERMINATION.
    Let me sum the solution to clarify the doubts,
    1.  Message Mapping
       One between the source file and the destination idoc messagetyep
        one between the source file and the destination mail messagetype.
    2. Like wise 2 Interface mapping.
    occurence of both message types and message interface has to be set to unbounded during message mapping and interface mapping.
    Now, in cofiguration XI first does RECEIVER DETERMINATION--> INTERFACE DETERMINATION and then INTERFACE MAPPING.
    So, you give the condition in the RECEIVER DETERMINATION on the basis of which the receiver is choosen and then you create the 2 interface determination. one for each Idoc and the mail.
    Prior to SP14, when 1:N split was to be done, you had to go for a BPM. Now, the same is not needed due to presence of RB_SPLIT.
    Check this link on how RB SPLIT works,
    http://help.sap.com/saphelp_nw04/helpdata/en/42/ed364cf8593eebe10000000a1553f7/content.htm
    Any further clarification guys??,
    Regards,
    Bhavesh
    Message was edited by: Bhavesh Kantilal

  • Confirmation Control Work Flow  in Purchase Order

    Hi Gurus,
       Can anyone explain me about the Confirmation Control Tab Work Flow in Purchase Order.
       If i select the Conf. Control in Purchase Order, next what process has to follow?
       Thanks in Advance
    Regards,
    Prabhakaran M

    Hi Prabhakaran
    The Confirmation Control tab has a field for selecting the COnfirmaiton control Key for the PO Item. This key Determines which confirmation categories are expected for a PO item (e.g. order acknowledgment, shipping notification).
    There are four categories delivered in the standard system, which decides whether you need only a ASN for a PO Item, or ASN with a rough GR, or Rough GR only etc.
    Once you have this key set up, system expects you to create that document for this item before you process the GR or Invoice.
    You can also set up automatic ASN creation if you have EDI Integration with the vendor.
    Benefit of ASN is that you ve the confirmed delivery dates and quantities well in advance and warehouse/Inventory team can plan their operations accordingly in advance...
    I hope this clarifies your questions
    Regards
    Virender Singh

  • Please provide the Message type ,IDOC TYPE , PROCESS CODE for Edi 990 ,214

    Hi friends,
    Please provide the Message type ,IDOC TYPE , PROCESS CODE for Edi 990 (Response to a Load Tender)., 214 (Shipment Status )
    For shipement status i got trxstc01 for idoc type .. but its only before 4.6 version ..for 4.7 its not there .. please give the alternate for that ...
    Thanks in Advance ....
    If any one is provide exact answer i will give Max marks ..
    Edited by: ajay KOLLA on Aug 6, 2009 8:04 AM

    Hi,
    Have you resolved this issue. If yes, can you please let me know. Im actually looking for same for EDI 867 (guess it is for summary report and need to know message type, Idoc type associated with this).
    Rgds
    Sudhanshu

  • Whats the diff between PPOC and PPOC with Work flow?

    Hi,
    Can any one please tell me out the difference between Creating Organisational Structure under OM and creating under "Tools" with Work Flow ?
    on Creation what would be changing factors between them?
    And Explain me about Work flow and how it will be useful and also where and all it reflects in SAP HR?
    Regards,
    Vinoth Kumar.R

    Hi
    I need the procedural difference between PPOCE And PPOCE with work Flow.
    Suppose if i need to create with PPOCE with work flow, is the Procedure would be the same or additionally I need to Activate some thing, It Might be very much Basic but i didnt work on othat so far.
    If there is any notes or Links to learn about it, please forward as it is helpful.
    Regards,
    Vinoth Kumar.R

  • PO outbound message control - Condition record / PO IDOC outbound user exit

    Guys,
    I have a system with PO outbound message control sending PO idocs to a unique plant that is set up as a customer in the partner profile. I am using a custom message type and RSEOUT00 to send my idocs with custom message type to this plant. This interface works fine. Now my requirement has changed. I need to send PO's to varying plants (depending on the plant in PO item- all items on my POs belong to same plant).
    I noticed that i cannot create condition tables with PO type and Plant combination. (SAP Note 457497 .Q-34).
    So I have decided to populate all my PO idocs with a generic receiving partner number '9999' and planning to change this somewhere in a user exit. I found an user exit which looks helpful.
    EXIT_SAPLEINM_001 .  FM
    MM06E001 - Enhancement.
    But somehow this exit is not triggered in during PO creation ME21N or change Me22N/Me22.
    Is this because I am using a custom message type instead of standard message type ? (I still use the process codes Me10/Me11). Would this matter ? When should this user exit trigger (during creation of idocs in status 30 or when i run RSEOUT00 to sweep these idocs in status 30 to status 03) ? Any tips will be useful.
    THanks.
    Edited by: Shareen Hegde on Jul 21, 2008 10:13 PM

    I found a OSS note -Note 457497 (Q&A # 34), which talks about the same . This was my assumption too. I was just confused because I saw plant(WERKS) in the field catalag of the access sequence.
    I don't know what header field I can use to map the plant (I agree its a good idea to do this). But I have decided to do it another way. I will change the receiving partner on the control record depending on the plant in an user exit
    -  EXIT_SAPLEINM_001.
    Thanks for your answer , Mahesh.

  • How can we use TABLE CONTROL in BDC and WORK FLOW of ABAP.

    how can we use TABLE CONTROL in BDC and WORK FLOW of ABAP.?
    please explain the important questions.

    How to deal with table control / step loop in BDC
    Steploop and table contol is inevitable in certain transactions. When we run BDC for such transactions, we will face the situation: how many visible lines of steploop/tablecontrol are on the screen? Although we can always find certain method to deal with it, such as function code 'NP', 'POPO', considering some extreme situation: there is only one line visible one the screen, our BDC program should display an error message. (See transaction 'ME21', we you resize your screen to let only one row visible, you can not enter mutiple lines on this screen even you use 'NP')
    Now with the help of Poonam on sapfans.com developement forum, I find a method with which we can determine the number of visible lines on Transaction Screen from our Calling BDC program. Maybe it is useless to you, but I think it will give your some idea.
    Demo ABAP code has two purposes:
    1. how to determine number of visible lines and how to calculte page number;
    (the 'calpage' routine has been modify to meet general purpose usage)
    2. using field symbol in BDC program, please pay special attention to the difference in Static ASSIGN and Dynamic ASSIGN.
    Now I begin to describe the step to implement my method:
    (I use transaction 'ME21', screen 121 for sample,
    the method using is Call Transation Using..)
    Step1: go to screen painter to display the screen 121, then we can count the fixed line on this screen, there is 7 lines above the steploop and 2 lines below the steploop, so there are total 9 fixed lines on this screen. This means except these 9 lines, all the other line is for step loop. Then have a look at steploop itselp, one entry of it will occupy two lines.
    (Be careful, for table control, the head and the bottom scroll bar will possess another two fixed lines, and there is a maximum number for table line)
    Now we have : FixedLine = 9
                  LoopLine  = 2(for table control, LoopLine is always equal to 1)
    Step2: go to transaction itself(ME21) to see how it roll page, in ME21, the first line of new page is always occupied by the last line of last page, so it begin with index '02', but in some other case, fisrt line is empty and ready for input.
    Now we have: FirstLine = 0
              or FirstLine = 1 ( in our case, FirstLine is 1 because the first line of new page is fulfilled)
    Step3: write a subroutine calcalculating number of pages
    (here, the name of actual parameter is the same as formal parameter)
    global data:    FixedLine type i, " number of fixed line on a certain screen
                    LoopLine  type i, " the number of lines occupied by one steploop item
                    FirstLine type i, " possbile value 0 or 1, 0 stand for the first line of new                                                               " scrolling screen is empty, otherwise is 1
                    Dataline  type i, " number of items you will use in BDC, using DESCRIBE to get
                    pageno    type i, " you need to scroll screen how many times.
                    line      type i, " number of lines appears on the screen.
                    index(2)  type N, " the screen index for certain item
                    begin     type i, " from parameter of loop
                    end       type i. " to parameter of loop
    *in code sample, the DataTable-linindex stands for the table index number of this line
    form calpage using FixedLine type i (see step 1)
                       LoopLine  type i (see step 1)
                       FirstLine type i (see step 2)
                       DataLine  type i ( this is the item number you will enter in transaction)
              changing pageno    type i (return the number of page, depends on run-time visible                                                                             line in table control/ Step Loop)
              changing line      type i.(visible lines one the screen)
    data: midd type i,
          vline type i, "visible lines
    if DataLine eq 0.
       Message eXXX.
    endif.
    vline = ( sy-srows - FixedLine ) div LoopLine.
    *for table control, you should compare vline with maximum line of
    *table control, then take the small one that is min(vline, maximum)
    *here only illustrate step loop
    if FirstLine eq 0.
            pageno = DataLine div vline.
            if pageno eq 0.
               pageno = pageno + 1.
            endif.
    elseif FirstLine eq 1.
            pageno = ( DataLine - 1 ) div ( vline - 1 ) + 1.
            midd = ( DataLine - 1 ) mod ( vline - 1).
            if midd = 0 and DataLine gt 1.
                    pageno = pageno - 1.
            endif.
    endif.
    line = vline.
    endform.
    Step4 write a subroutine to calculate the line index for each item.
    form calindex using Line type i (visible lines on the screen)
                        FirstLine type i(see step 2)
                        LineIndex type i(item index)
              changing  Index type n.    (index on the screen)
      if  FirstLine = 0.
            index = LineIndex mod Line.
            if index = '00'.
                    index = Line.
            endif.
      elseif FirstLine = 1.
            index = LineIndex mod ( Line - 1 ).
            if ( index between 1 and 0 ) and LineIndex gt 1.
                    index = index + Line - 1.
            endif.
            if Line = 2.
                    index = index + Line - 1.
            endif.
    endif.
    endform.
    Step5 write a subroutine to calculate the loop range.
    form calrange using Line type i ( visible lines on the screen)
                        DataLine type i
                        FirstLine type i
                        loopindex like sy-index
            changing    begin type i
                        end type i.
    If FirstLine = 0.
       if loopindex = 1.
            begin = 1.
            if DataLine <= Line.
                    end = DataLine.
            else.
                    end = Line.
            endif.
       elseif loopindex gt 1.
            begin = Line * ( loopindex - 1 ) + 1.
            end   = Line * loopindex.
            if end gt DataLine.
               end = DataLine.
            endif.
       endif.
    elseif FirstLine = 1.
      if loopindex = 1.
            begin = 1.
            if DataLine <= Line.
                    end = DataLine.
            else.
                    end = Line.
            endif.
      elseif loop index gt 1.
            begin = ( Line - 1 ) * ( loopindex - 1 ) + 2.
            end =   ( Line - 1 ) * ( loopindex - 1 ) + Line.
            if end gt DataLine.
                    end = DataLine.
            endif.
      endif.
    endif.
    endform.
    Step6 using field sysbol in your BDC, for example: in ME21, but you should calculate each item will correponding to which index in steploop/Table Control
    form creat_bdc.
    field-symbols: <material>, <quan>, <indicator>.
    data: name1(14) value 'EKPO-EMATN(XX)',
          name2(14) value 'EKPO-MENGE(XX)',
          name3(15) value 'RM06E-SELKZ(XX)'.
    assign:         name1 to <material>,
                    name2 to <quan>,
                    name3 to <indicator>.
    do pageno times.
    if sy-index gt 1
    *insert scroll page ok_code"
    endif.
            perform calrange using Line DataLine FirstLine sy-index
                             changing begin end.
    loop at DataTable from begin to end.
            perform calindex using Line FirstLine DataTable-LineIndex changing Index.
            name1+11(2) = Index.
            name2+11(2) = Index.
            name3+12(2) = Index.
            perform bdcfield using <material> DataTable-matnr.
            perform bdcfield using <quan>     DataTable-menge.
            perform bdcfield using <indicator> DataTable-indicator.
    endloop.
    enddo.
    An example abap program of handling Table Control during bdc programming.
    REPORT zmm_bdcp_purchaseorderkb02
           NO STANDARD PAGE HEADING LINE-SIZE 255.
                    Declaring internal tables                            *
    *-----Declaring line structure
    DATA : BEGIN OF it_dummy OCCURS 0,
             dummy(255) TYPE c,
           END OF it_dummy.
    *-----Internal table for line items
    DATA :  BEGIN OF it_idata OCCURS 0,
              ematn(18),      "Material Number.
              menge(13),      "Qyantity.
              netpr(11),      "Net Price.
              werks(4),       "Plant.
              ebelp(5),       "Item Number.
            END OF it_idata.
    *-----Deep structure for header data and line items
    DATA  :  BEGIN OF it_me21 OCCURS 0,
               lifnr(10),      "Vendor A/c No.
               bsart(4),       "A/c Type.
               bedat(8),       "Date of creation of PO.
               ekorg(4),       "Purchasing Organisation.
               ekgrp(3),       "Purchasing Group.
               x_data LIKE TABLE OF it_idata,
             END OF it_me21.
    DATA  :  x_idata LIKE LINE OF it_idata.
    DATA  :  v_delimit VALUE ','.
    DATA  :  v_indx(3) TYPE n.
    DATA  :  v_fnam(30) TYPE c.
    DATA  :  v_count TYPE n.
    DATA  :  v_ne TYPE i.
    DATA  :  v_ns TYPE i.
    *include bdcrecx1.
    INCLUDE zmm_incl_purchaseorderkb01.
                    Search help for file                                 *
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
      CALL FUNCTION 'F4_FILENAME'
        EXPORTING
          program_name  = syst-cprog
          dynpro_number = syst-dynnr
        IMPORTING
          file_name     = p_file.
    START-OF-SELECTION.
           To upload the data into line structure                        *
      CALL FUNCTION 'WS_UPLOAD'
        EXPORTING
          filename = p_file
          filetype = 'DAT'
        TABLES
          data_tab = it_dummy.
        Processing the data from line structure to internal tables       *
      REFRESH:it_me21.
      CLEAR  :it_me21.
      LOOP AT it_dummy.
        IF it_dummy-dummy+0(01) = 'H'.
          v_indx = v_indx + 1.
          CLEAR   it_idata.
          REFRESH it_idata.
          CLEAR   it_me21-x_data.
          REFRESH it_me21-x_data.
          SHIFT it_dummy.
          SPLIT it_dummy AT v_delimit INTO it_me21-lifnr
                                           it_me21-bsart
                                           it_me21-bedat
                                           it_me21-ekorg
                                           it_me21-ekgrp.
          APPEND it_me21.
        ELSEIF it_dummy-dummy+0(01) = 'L'.
          SHIFT it_dummy.
          SPLIT it_dummy AT v_delimit INTO it_idata-ematn
                                           it_idata-menge
                                           it_idata-netpr
                                           it_idata-werks
                                           it_idata-ebelp.
          APPEND it_idata TO it_me21-x_data.
          MODIFY it_me21 INDEX v_indx.
        ENDIF.
      ENDLOOP.
                    To open the group                                    *
      PERFORM open_group.
            To populate the bdcdata table for header data                *
      LOOP AT it_me21.
        v_count = v_count + 1.
        REFRESH it_bdcdata.
        PERFORM subr_bdc_table USING:   'X' 'SAPMM06E'    '0100',
                                        ' ' 'BDC_CURSOR'  'EKKO-LIFNR',
                                        ' ' 'BDC_OKCODE'  '/00',
                                        ' ' 'EKKO-LIFNR'  it_me21-lifnr,
                                        ' ' 'RM06E-BSART' it_me21-bsart,
                                        ' ' 'RM06E-BEDAT' it_me21-bedat,
                                        ' ' 'EKKO-EKORG'  it_me21-ekorg,
                                        ' ' 'EKKO-EKGRP'  it_me21-ekgrp,
                                        ' ' 'RM06E-LPEIN' 'T'.
        PERFORM subr_bdc_table USING:   'X' 'SAPMM06E'    '0120',
                                        ' ' 'BDC_CURSOR'  'RM06E-EBELP',
                                        ' ' 'BDC_OKCODE'  '/00'.
        MOVE 1 TO v_indx.
    *-----To populate the bdcdata table for line item data
        LOOP AT it_me21-x_data INTO x_idata.
          CONCATENATE 'EKPO-EMATN(' v_indx ')'  INTO v_fnam.
          PERFORM  subr_bdc_table USING ' ' v_fnam x_idata-ematn.
          CONCATENATE 'EKPO-MENGE(' v_indx ')'  INTO v_fnam.
          PERFORM  subr_bdc_table USING ' ' v_fnam x_idata-menge.
          CONCATENATE 'EKPO-NETPR(' v_indx ')'  INTO v_fnam.
          PERFORM  subr_bdc_table USING ' ' v_fnam x_idata-netpr.
          CONCATENATE 'EKPO-WERKS(' v_indx ')'  INTO v_fnam.
          PERFORM  subr_bdc_table USING ' ' v_fnam x_idata-werks.
          v_indx = v_indx + 1.
          PERFORM subr_bdc_table USING:  'X' 'SAPMM06E'    '0120',
                                         ' ' 'BDC_CURSOR'  'RM06E-EBELP',
                                         ' ' 'BDC_OKCODE'  '/00'.
        ENDLOOP.
        PERFORM subr_bdc_table USING:    'X' 'SAPMM06E'    '0120',
                                         ' ' 'BDC_CURSOR'  'RM06E-EBELP',
                                         ' ' 'BDC_OKCODE'  '=BU'.
        PERFORM bdc_transaction USING 'ME21'.
      ENDLOOP.
      PERFORM close_group.
                      End of selection event                             *
    END-OF-SELECTION.
      IF session NE 'X'.
    *-----To display the successful records
        WRITE :/10  text-001.          "Sucess records
        WRITE :/10  SY-ULINE(20).
        SKIP.
        IF it_sucess IS INITIAL.
          WRITE :/  text-002.
        ELSE.
          WRITE :/   text-008,          "Total number of Succesful records
                  35 v_ns.
          SKIP.
          WRITE:/   text-003,          "Vendor Number
                 17 text-004,          "Record number
                 30 text-005.          "Message
        ENDIF.
        LOOP AT it_sucess.
          WRITE:/4  it_sucess-lifnr,
                 17 it_sucess-tabix CENTERED,
                 30 it_sucess-sucess_rec.
        ENDLOOP.
        SKIP.
    *-----To display the erroneous records
        WRITE:/10   text-006.          "Error Records
        WRITE:/10   SY-ULINE(17).
        SKIP.
        IF it_error IS INITIAL.
          WRITE:/   text-007.          "No error records
        ELSE.
          WRITE:/   text-009,          "Total number of erroneous records
                 35 v_ne.
          SKIP.
          WRITE:/   text-003,          "Vendor Number
                 17 text-004,          "Record number
                 30 text-005.          "Message
        ENDIF.
        LOOP AT it_error.
          WRITE:/4  it_error-lifnr,
                 17 it_error-tabix CENTERED,
                 30 it_error-error_rec.
        ENDLOOP.
        REFRESH it_sucess.
        REFRESH it_error.
      ENDIF.
    CODE IN INCLUDE.
    Include           ZMM_INCL_PURCHASEORDERKB01
    DATA:   it_BDCDATA LIKE BDCDATA    OCCURS 0 WITH HEADER LINE.
    DATA:   it_MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
    DATA:   E_GROUP_OPENED.
    *-----Internal table to store sucess records
    DATA:BEGIN OF it_sucess OCCURS 0,
           msgtyp(1)   TYPE c,
           lifnr  LIKE  ekko-lifnr,
           tabix  LIKE  sy-tabix,
           sucess_rec(125),
         END OF it_sucess.
    DATA: g_mess(125) type c.
    *-----Internal table to store error records
    DATA:BEGIN OF it_error OCCURS 0,
           msgtyp(1)   TYPE c,
           lifnr  LIKE  ekko-lifnr,
           tabix  LIKE  sy-tabix,
           error_rec(125),
         END OF it_error.
           Selection screen
    SELECTION-SCREEN BEGIN OF LINE.
    PARAMETERS session RADIOBUTTON GROUP ctu.  "create session
    SELECTION-SCREEN COMMENT 3(20) text-s07 FOR FIELD session.
    SELECTION-SCREEN POSITION 45.
    PARAMETERS ctu RADIOBUTTON GROUP ctu.     "call transaction
    SELECTION-SCREEN COMMENT 48(20) text-s08 FOR FIELD ctu.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 3(20) text-s01 FOR FIELD group.
    SELECTION-SCREEN POSITION 25.
    PARAMETERS group(12).                      "group name of session
    SELECTION-SCREEN COMMENT 48(20) text-s05 FOR FIELD ctumode.
    SELECTION-SCREEN POSITION 70.
    PARAMETERS ctumode LIKE ctu_params-dismode DEFAULT 'N'.
    "A: show all dynpros
    "E: show dynpro on error only
    "N: do not display dynpro
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 48(20) text-s06 FOR FIELD cupdate.
    SELECTION-SCREEN POSITION 70.
    PARAMETERS cupdate LIKE ctu_params-updmode DEFAULT 'L'.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 3(20) text-s03 FOR FIELD keep.
    SELECTION-SCREEN POSITION 25.
    PARAMETERS: keep AS CHECKBOX.       "' ' = delete session if finished
    "'X' = keep   session if finished
    SELECTION-SCREEN COMMENT 48(20) text-s09 FOR FIELD e_group.
    SELECTION-SCREEN POSITION 70.
    PARAMETERS e_group(12).             "group name of error-session
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 51(17) text-s03 FOR FIELD e_keep.
    SELECTION-SCREEN POSITION 70.
    PARAMETERS: e_keep AS CHECKBOX.     "' ' = delete session if finished
    "'X' = keep   session if finished
    SELECTION-SCREEN END OF LINE.
    PARAMETERS:p_file LIKE rlgrap-filename.
      at selection screen                                                *
    AT SELECTION-SCREEN.
    group and user must be filled for create session
      IF SESSION = 'X' AND
         GROUP = SPACE. "OR USER = SPACE.
        MESSAGE E613(MS).
      ENDIF.
      create batchinput session                                          *
    FORM OPEN_GROUP.
      IF SESSION = 'X'.
        SKIP.
        WRITE: /(20) 'Create group'(I01), GROUP.
        SKIP.
    *----open batchinput group
        CALL FUNCTION 'BDC_OPEN_GROUP'
          EXPORTING
            CLIENT = SY-MANDT
            GROUP  = GROUP
            USER   = sy-uname.
        WRITE:/(30) 'BDC_OPEN_GROUP'(I02),
                (12) 'returncode:'(I05),
                     SY-SUBRC.
      ENDIF.
    ENDFORM.                    "OPEN_GROUP
      end batchinput session                                             *
    FORM CLOSE_GROUP.
      IF SESSION = 'X'.
    *------close batchinput group
        CALL FUNCTION 'BDC_CLOSE_GROUP'.
        WRITE: /(30) 'BDC_CLOSE_GROUP'(I04),
                (12) 'returncode:'(I05),
                     SY-SUBRC.
      ELSE.
        IF E_GROUP_OPENED = 'X'.
          CALL FUNCTION 'BDC_CLOSE_GROUP'.
          WRITE: /.
          WRITE: /(30) 'Fehlermappe wurde erzeugt'(I06).
        ENDIF.
      ENDIF.
    ENDFORM.                    "CLOSE_GROUP
           Start new transaction according to parameters                 *
    FORM BDC_TRANSACTION USING TCODE TYPE ANY.
      DATA: L_SUBRC LIKE SY-SUBRC.
    *------batch input session
      IF SESSION = 'X'.
        CALL FUNCTION 'BDC_INSERT'
          EXPORTING
            TCODE     = TCODE
          TABLES
            DYNPROTAB = it_BDCDATA.
        WRITE: / 'BDC_INSERT'(I03),
                 TCODE,
                 'returncode:'(I05),
                 SY-SUBRC,
                 'RECORD:',
                 SY-INDEX.
      ELSE.
        REFRESH it_MESSTAB.
        CALL TRANSACTION TCODE USING it_BDCDATA
                         MODE   CTUMODE
                         UPDATE CUPDATE
                         MESSAGES INTO it_MESSTAB.
        L_SUBRC = SY-SUBRC.
        WRITE: / 'CALL_TRANSACTION',
                 TCODE,
                 'returncode:'(I05),
                 L_SUBRC,
                 'RECORD:',
                 SY-INDEX.
      ENDIF.
      Message handling for Call Transaction                              *
      perform subr_mess_hand using g_mess.
    *-----Erzeugen fehlermappe
      IF L_SUBRC <> 0 AND E_GROUP <> SPACE.
        IF E_GROUP_OPENED = ' '.
          CALL FUNCTION 'BDC_OPEN_GROUP'
            EXPORTING
              CLIENT = SY-MANDT
              GROUP  = E_GROUP
              USER   = sy-uname
              KEEP   = E_KEEP.
          E_GROUP_OPENED = 'X'.
        ENDIF.
        CALL FUNCTION 'BDC_INSERT'
          EXPORTING
            TCODE     = TCODE
          TABLES
            DYNPROTAB = it_BDCDATA.
      ENDIF.
      REFRESH it_BDCDATA.
    ENDFORM.                    "BDC_TRANSACTION
         Form  subr_bdc_table                                            *
          text
         -->P_0220   text                                                *
         -->P_0221   text                                                *
         -->P_0222   text                                                *
    FORM subr_bdc_table  USING      VALUE(P_0220) TYPE ANY
                                    VALUE(P_0221) TYPE ANY
                                    VALUE(P_0222) TYPE ANY.
      CLEAR it_bdcdata.
      IF P_0220 = ' '.
        CLEAR it_bdcdata.
        it_bdcdata-fnam     = P_0221.
        it_bdcdata-fval     = P_0222.
        APPEND it_bdcdata.
      ELSE.
        it_bdcdata-dynbegin = P_0220.
        it_bdcdata-program  = P_0221.
        it_bdcdata-dynpro   = P_0222.
        APPEND it_bdcdata.
      ENDIF.
    ENDFORM.                    " subr_bdc_table
         Form  subr_mess_hand                                            *
          text                                                           *
         -->P_G_MESS  text                                               *
    FORM subr_mess_hand USING  P_G_MESS TYPE ANY.
      LOOP AT IT_MESSTAB.
        CALL FUNCTION 'FORMAT_MESSAGE'
          EXPORTING
            ID     = it_messtab-msgid
            LANG   = it_messtab-msgspra
            NO     = it_messtab-msgnr
            v1     = it_messtab-msgv1
            v2     = it_messtab-msgv2
          IMPORTING
            MSG    = P_G_MESS
          EXCEPTIONS
            OTHERS = 0.
        CASE it_messtab-msgtyp.
          when 'E'.
            it_error-error_rec   =  P_G_MESS.
            it_error-lifnr       =  it_me21-lifnr.
            it_error-tabix       =  v_count.
            APPEND IT_ERROR.
          when 'S'.
            it_sucess-sucess_rec =  P_G_MESS.
            it_sucess-lifnr      =  it_me21-lifnr.
            it_sucess-tabix      =  v_count.
            APPEND IT_SUCESS.
        endcase.
      ENDLOOP.
      Describe table it_sucess lines v_ns.
      Describe table it_error  lines v_ne.
    ENDFORM.                    " subr_mess_hand
    Also refer
    http://sap.ittoolbox.com/groups/technical-functional/sap-dev/bdc-table-control-668404
    and
    http://www.sap-img.com/abap/bdc-example-using-table-control-in-bdc.htm
    Regards,
    srinivas
    <b>*reward for useful answers*</b>

  • Hi all ,i need a good documentation for a beginner in WORK FLOW ?

    hi all ,
    i need a good documentation for a beginner in WORK FLOW ?
    please,try to send the attached documents as much as u can apart from giving the weblinks ?
    hope you will send it soon ....
    thanks & regards
    vishnuvardhan k.v.

    Hi
    Developing a simple application using steps "User Decision" and "Mail"
    Basic terminology used in the workflow:
    The workflow definition is the set of rules that determine the path that the process takes. For example, how a purchase requisition is processed, from the initial request to the creation of the purchase order
    A Workflow Instance, which is often simply referred to as the workflow, is a single workflow run. For example, the processing of a single purchase requisition for computers.
    The Tasks are the steps in the process, which have to be performed either by people or automatically by the software. For example, to check for the availability of the spare computers in the company.
    A Work item is the task instance that is performed as a single workflow step. For example, check that there are no spare computers available in the company.
    Agents are the people who process the tasks (via the work items). For example, requisitioner and a member of the purchasing department.
    Container is the place where all the data used in the workflow is collected.
    Binding is the set of rules that define which data is passed to which part of the process.
    Building a simple workflow application
    The central tool for creating, displaying and processing a workflow is the workflow builder (Transaction SWDD). Within the workflow builder you can create all components of a workflow, including all the containers you need for getting the data from one step to another.
    Generally, most of the workflows are started by an event (for example, when a material is created or when a new purchase requisition arrives). You define which data from this event needs to be passed to the workflow via binding.
    However you can also start any workflow directly. Let us create a simple workflow and start the workflow directly, using the testing tools.
    Call transaction SWDD. When the workflow builder is called for the first time, a newly created initial workflow definition appears or else last created workflow appears. In such cases you can opt to create a new workflow by pressing “Create New Workflow”(ctrl + shft + F5). The following screen appears.
    The initial workflow screen has the following parts:
    a. The start of the workflow definition, indicated by .
    b. The end of the workflow definition, indicated by .
    c. The area in which you insert the new workflow definition is indicated by .
    Now select the undefined step and select Create step or double click the undefined step. Now among the different steps chose the User Decision by double clicking on it.
    Developing a simple application using steps "User Decision" and "Mail"
    Previous
    Now enter the title for the user decision “ Please make a decision”. Also enter the decision texts as Approve and Reject. On pressing enter, the outcome values default to the Decision texts but you can specify your own names, if desired. Now we need to select the agent. Agent is the person to whom the work item needs to be sent.. Since this is just a beginning, we would hardcode the user name. Select the User from the drop down list and enter the user name to whom the work item needs to be sent. In general, this type of agent assignment is not done. Agents are generally assigned using the expression, agent assignment rule or organization object (job, position etc.).
    Now select Transfer and to graphic button. Following screen appears:
    Now we need to include a mail step to be sent to the requestor. Now select the line “Approve” and do a right click. Different options on shown on the context menu. Select Create.
    Now select the step “Send Mail” from the list.
    Developing a simple application using steps "User Decision" and "Mail"
    ...Previous
    Now enter the subject and the body of the message for the mail to be sent.
    Do not change the recipients. Our mail is intended for the persons who triggered this workflow. &_WF_INITIATOR& contains the value who executed the workflow. Since this is a test object, we are using &_WF_INITIATOR&. But we wouldn’t be using this variable in real time scenarios. We would discuss about this in the coming documents.
    Now select Transfer and to graphic button.
    A popup appears requesting for the abbreviation and the name for this task. Enter the same and press enter.
    Now enter the package as local object and press enter.
    Follow the steps 5 through 9 for the step “Reject”. The following screen appears:
    Press SAVE to save the workflow application. You need to enter an abbreviation and name for your workflow as shown below. You can change any of these at any later point. After saving, a number is assigned to your workflow starting with WS, as shown below.
    Developing a simple application using steps "User Decision" and "Mail"
    ...Previous
    To execute the workflow, activate it by choosing the activate button.
    Test the workflow by choosing Test. The following screen appears.
    Now choose Execute to start the workflow.
    Now the recipient would receive a work item in his SAP® inbox (Transaction SBWP).
    Now execute the work item by pressing “Execute”. The following screen appears:
    Choose one among Approve or Reject as part of the user decision. He can select the third option to retain the work item in his inbox and make the decision later. Now suppose that the recipient has chosen one of the first options. Now a mail would be sent to the requestor with the status of his request.
    Creating a Container element
    This document details about creation of a container element in workflow and using it in the step "Mail".
    Pre-requisites:
    It is assumed that the reader of this Tutorial is aware of creating a workflow definition with the step “Mail”. If not, please go through the document on creating the same available, by clicking here.
    Steps:
    1. Create a workflow definition using the transaction SWDD.
    2. Let’s create a container element for Carrier id. Click on the “Workflow Container” on the left side of the screen (as shown in the screenshot below):
    3. Now double-click on “Double-Click to Create”
    4. Enter the details pertaining to CARRID here.
    5. Click on tab “Properties” and select “Import”.
    6. Click on “Confirm (Enter)”.
    7. Now the element created could be seen on the left side, below the “Workflow Container”.
    Creating a Container element
    Previous
    1. Create a “Mail” step by double-clicking on “Undefined” step in the workflow.
    2. Enter the recipient details in the “Recipients” box.
    3. In the subject line, enter “Carrid value entered is:” and click on “Insert Expression”.
    4. Select the element “Carrid” from the list.
    5. Similarly enter the content in the “Body” area.
    6. Save and activate the application.
    Testing the Workflow application:
    7. Test the workflow by clicking F8.
    8. Enter the value of the Carrid as shown above and press execute.
    9. A mail would be sent to the recipient mentioned earlier with the carrid value entered.
    Condition Step
    Agenda:
    This document details about the steps “Condition”.
    Pre-requisites: It is assumed that the reader of this document has a preliminary understanding of workflow and has worked with the container elements earlier. If not, please go through the first two Tutorials of workflow available in this site. (More details)
    Procedure:
    1. Create a new workflow definition.
    2. Create a container element, CARRID (as demonstrated in tutorial 2).
    3. Now click on undefined step and create the step “Condition”.
    4. Enter the step name of your choice.
    5. We would have the following condition here:
    If carrid = ‘AA’.
    Do this.
    Else.
    Do this.
    Click on “Click here to create a new condition”. Following screen appears.
    Double click on “Carrid”. Next click on “=” and enter the value “AA” in the constant field and press ENTER.
    Enter the outcome names of your choice as shown above.
    Click on “Transfer and go to graphic”.
    As shown above, there are two branches here. One navigates to true, if CARRID = ‘AA’ else the control takes the branch “False”.
    Test the above scenario by inserting mail steps in the above 2 branches and by passing different CARRID values.
    Condition Step
    Agenda:
    This document details about the steps “Multiple Condition”.
    Pre-requisites: It is assumed that the reader of this document has a preliminary understanding of workflow and has worked with the container elements earlier. If not, please go through the first two Tutorials of workflow available in this site. (More details)
    Procedure:
    1. Create a new workflow definition.
    2. Create a container element, CARRID (as demonstrated in tutorial 2).
    3. Now click on undefined step and create the step “Multiple Condition”.
    4. Enter the step name of your choice.
    5. We would have the following condition here:
    If carrid = ‘AA’.
    Do this.
    Elseif carrid = ‘AH’
    DO this.
    Elseif carrid = ‘SQ’
    Do this.
    Else.
    Do this.
    Select the “CARRID” using the F4 help for the comparison basis field.
    Enter the values of the carrid under the Comparison values with the corresponding outcome name (of your choice)
    Double click on “Carrid”. Next click on “=” and enter the value “AA” in the constant field and press ENTER.
    Click on “Transfer and go to graphic”.
    As observed above, there are different branches for each value of CARRID mentioned above.
    Test the above scenario by inserting mail steps in all the branches and by passing different CARRID values.
    Using "Container Operation" step
    Agenda: Usage of step “Container Operation”.
    Pre-requisites: It is assumed that the reader of this tutorial has worked in the concepts that are dealt in earlier tutorials. (click here for more details)
    Scenario: In this tutorial, we would deal about how to work with the step “Container Operation” with an example of calculating the available seats by subtracting occupied seats from the maximum seats at the workflow level.
    Procedure:
    1. Create a new workflow definition using the transaction SWDD.
    2. Create two container elements MaxSeats, Occ_Seats with the “import” property set. You can use the reference fields sflight-seatsmax, sflight-seatsocc for this.
    3. Create another container element AvailableSeats without setting either import or export property as this is calculated within the workflow and used within the workflow. You might use any of the above reference fields as data types.
    4. Define a new step “Container Operation” in the workflow definition by double-clicking on the “Undefined step”.
    5. In this step, we would calculate the available seats from the max seats and seats occupied.
    I would recommend entering all the container elements from the F4 help instead of typing them manually.
    6. Return to the main screen.
    7. Create a mail step after this to send the available seats information.
    8. Test the above functionality by passing some values to the maximum and the seats occupied.
    9. Result would be as follows:
    Triggering Events Programmatically
    Purpose: This document details the procedure in triggering the business object events programmatically.
    Pre-requisites: It is assumed that the reader of this document is aware of the business object concepts and good in ABAP.
    Procedure:
    In this document, we would take an example of the business object BUS1001006 (Material) and the event CREATED. In general, this event is triggered whenever a material is created using a standard procedure like MM01 or any others. Now we would trigger this event from our own programs.
    Following are the screenshots of the business object BUS1001006 and the event CREATED. Go to transaction SWO1 for more information of the business object.
    Double-clicking on the key field parameter gives you technical information of the field.
    In order to trigger an event programmatically, we would use the function module SWE_EVENT_CREATE.
    Following is the sample code to trigger the events programmatically:
    REPORT ZDEMO_TRIGGER_EVENT.
    DATA: KEY LIKE SWEINSTCOU-OBJKEY.
    KEY = '1163'. “ Material Number (hard-coded)
    CALL FUNCTION 'SWE_EVENT_CREATE'
    EXPORTING
    objtype = 'BUS1001006'
    objkey = KEY
    event = 'CREATED'
    CREATOR = ' '
    TAKE_WORKITEM_REQUESTER = ' '
    START_WITH_DELAY = ' '
    START_RECFB_SYNCHRON = ' '
    NO_COMMIT_FOR_QUEUE = ' '
    DEBUG_FLAG = ' '
    NO_LOGGING = ' '
    IDENT =
    IMPORTING
    EVENT_ID =
    TABLES
    EVENT_CONTAINER =
    EXCEPTIONS
    OBJTYPE_NOT_FOUND = 1
    OTHERS = 2
    IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ELSE.
    WRITE 'Event Triggered'.
    ENDIF.
    COMMIT WORK.
    In order to test whether the event is getting triggered or not, we can make use of Event Trace. Switch on the event trace using the transaction SWELS.
    Press ‘Switch On”.
    Now execute the program developed earlier. Now switch-off the event trace using the same transaction SWELS.
    Now go to transaction SWEL. Here you can list out the events triggered in the particular period of time. Here is the event-trace list:
    Deadline Monitoring in SAP Workflow
    A major advantage of workflow is the ability to monitor the workflow steps according to a predefined schedule. Following are different deadlines that can be monitored against each workflow step:
    • Requested Start
    • Latest Start
    • Requested End
    • Latest End
    In this example, we will define a deadline to the User Decision example created earlier (click here). Following is the screenshot of the application developed using the User Decision example:
    We would extend this example to the deadline monitoring.
    In the User Decision step, click on the “latest end” tab.
    By default, No deadline monitoring is active (as seen in the above screenshot).
    Choose the “Work Item Creation” from the list box.
    After selecting “Work Item Creation”, chose an offset of 5 minutes. This means that the work item must be executed within 5 minutes of the creation, if not this would trigger.
    Deadline Monitoring in SAP Workflow
    Enter recipient details to whom the message to be escalated, if the work item is not executed with in 5 minutes after work item creation.
    Save and activate the workflow definition.
    Testing the workflow application:
    • Execute your workflow.
    • Check for the work item in the SAP Inbox. This time do NOT execute the work item.
    • Wait for the deadline to be triggered. After that, a deadline message is delivered to the recipient mentioned in the “Latest End” tab. See the screenshot below.
    Don’t worry if the deadline message doesn’t appear immediately after 5 minutes. This depends on various factors including how the deadline monitoring program is scheduled and also on the availability of the background processors.
    Use SWWA to check how the deadline monitoring program is scheduled in program.
    For example, assume that our work item has been created at 09:10 hrs and the deadline message is expected to trigger at 09:15 hrs. From the above screenshot, it is understood that the background program is scheduled to execute for every 3 minutes. Assume that the last run of the program is at 09:14hrs and the next run is expected at 09:17hrs. So even our deadline expires at 09:15, the deadline message would appear only at 09:17hrs after execution of the background program.
    Some more points
    In our above example, we have used the deadline on the “Work Item” creation time. i.e., 5 minutes after creation time, the deadline message would be sent. Now we would check the other option “Expression”. Here we can mention the date and time, when the deadline message should appear irrespective of the work item creation date/time.
    As seen in the above screenshot, we can provide the target date and time by which the task should be finished. Container elements could be used in this case. Please refer to our example on creation of container elements (click here).
    Personal Substitute in Workflow
    Requirement: Need to have at least one substitute who can act upon work items in your absence.
    Important: The appointed substitute would be able to see all your work items. A substitute cannot be assigned for only particular area of organization or any other item. So need to ensure that the substitute have the necessary authorizations to act upon the work items.
    Procedure:
    1. Go to SAP Business Work Place (TCode: SBWP)
    2. Now from the menu bar, select Settings à Workflow settings à Maintain Substitute
    3. Highlight/Select the name on the window, in this case SAPDEV02 and click on “Create Substitute”.
    4. List of users available in the system are displayed.
    5. Select the required substitute user name. Following screen appears.
    Validity field describes about the period in which the setting would be active. Note that the dates on the screen would range from the current date to 31st Dec 9999.
    Regarding the checkbox “Substitution active”, it is advised to leave this checkbox unchecked for system performance reasons. A check in this box indicates that the substitution is “permanent” and if left unchecked it is treated as “as-needed”. A permanent substitute will automatically receive the primary users work items in their own box. In the case of “as-needed”, substitute must manually adopt the work items from the primary user’s inbox.
    6. Save the entries
    7. Click Enter to leave the screen.
    Adopting a Substitute in Workflow
    If you have been designated as an “as-needed” substitute, you must manually adopt the substitution. If you are designated as a “permanent” substitute, the work items would automatically appear in the inbox.
    Before adopting a substitution, there are 19 work items in the inbox. See the screenshot below:
    To adopt a substitution, select Settings à Workflow settings à adopt substitution.
    Select the corresponding User-id (if you have been assigned as a substitute for multiple people, then this option would allow you to select the user name of whom you would to check the work items)
    The corresponding user’s work items would appear in our inbox now.
    You can end the substitution, by selecting settings à Workflow settings à End substitution.
    Note: Substitutes can only adopt work items that are directly routed to the person for whom they are a substitute. If you are a substitute for a user (SAPDEV02) who has been made a substitute for another user (SAPDEV01), you will only see work items for user SAPDEV02 and not of the user SAPDEV01.
    Notification of Work Items via e-Mail
    SAP provides us with a facility of notifying the user via the email address of your choice when there are any pending work items in the SAP Inbox..
    1. Go to Transaction SO13.
    2. Click on Automatic Forwarding tab.
    3. Click on Create icon .
    4. Enter the details in the above screen.
    5. Click ENTER to complete the entries.
    6. Now the notification would be received at the provided email address if there are any pending work items in the inbox.
    Filtering the Work Items in the SAP Inbox using BADI
    This document details about the procedure in filtering some of the work items from the SAP inbox using a BADi.
    Following is the screenshot of the SAP inbox, before implementing BADi:
    The BADi that is used in filtering the work items is WF_BWP_SELECT_FILTER. To implement the BADi, go to transaction SE18. From the menu, select Implementation à Create. (See the screenshot below)
    Enter the implementation name and press ENTER
    Enter any meaningful short text for the implementation and click on the tab “Interface”
    The implementing class, ZCL_IM_BWP_SELECT_FILTER, is automatically proposed. Double click on the implementing class name.
    You are now navigated to the class builder. Now double-click on the method name shown on the screen (see the snapshot below)
    Now let us filter out the work items belonging to the task TS2000066. See the code below:
    Activate the method and also the implementation. In the state of active, you wouldn’t be able to make any changes. To make any changes, we need to deactivate it and then make the changes.
    Now check the inbox and would notice that the work items related to that task are no more appearing.
    To notice the differences, try activating and deactivating the BADi implementation.
    Workflow tutorials with step-by-step and with screenshots are available at http://www.****************/Tutorials/Workflow/Workflow.htm
    http://help.sap.com/saphelp_erp2005vp/helpdata/en/42/c14a9b55103116e10000000a1553f7/frameset.htm
    http://help.sap.com/saphelp_erp2005vp/helpdata/en/c5/e4a930453d11d189430000e829fbbd/frameset.htm
    http://www.sapgenie.com/workflow/
    http://www.sap-img.com/workflow/sap-workflow.htm
    http://help.sap.com/saphelp_47x200/helpdata/en/3d/6a9b3c874da309e10000000a114027/frameset.htm
    http://help.sap.com/printdocu/core/Print46c/en/data/pdf/PSWFL/PSWFL.pdf
    http://help.sap.com/saphelp_47x200/helpdata/en/4a/dac507002f11d295340000e82dec10/frameset.htm
    http://www.workflowing.com/id18.htm
    http://www.e-workflow.org/
    http://web.mit.edu/sapr3/dev/newdevstand.html
    http://www.sap-basis-abap.com/wf/sap-business-workflow.htm
    https://forums.sdn.sap.com/click.jspa?searchID=791580&messageID=2857887
    https://forums.sdn.sap.com/click.jspa?searchID=791580&messageID=2855919
    https://forums.sdn.sap.com/click.jspa?searchID=791580&messageID=2735228
    http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCBMTWFMSTART/BCBMTWFMSTART.pdf
    http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCBMTWFMDEMO/BCBMTWFMDEMO.pdf
    http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCBMTWFMPM/BCBMTWFMPM.pdf
    http://help.sap.com/printdocu/core/Print46c/en/data/pdf/PSWFL/PSWFL.pdf
    debug a workflow.
    This has a step by step procedure :
    http://fuller.mit.edu/workflow/debugging.pdf
    www.erpgenie.com/sap/workflow/debugging.htm
    http://www.erpgenie.com/workflow/debugging.htm?2b5de440

  • Creation of Custom IDoc with Message control for sales Order

    Hi all,
    I am trying to create custom Outbound IDoc with message control.
    I wrote the code in a function module and i want to register that function module. (as in inbound registration of function module as in BD51).I am not knowing if that registration is necessary for outbound Idoc, if so in which transacition?
    Please list me the steps to create a custom IDoc for Message control.
    Thanks in advance,
    Regards,
    John.

    Hi,
    You need to use FM : MASTER_IDOC_DISTRIBUTE to create outbound idoc.fill the data in the tables EDIDC,EDIDD and generate the IDOC.
    check this link:
    Re: Master_IDoc_Distribute
    and use transaction : WEDI for IDOC configurations.
    here you will have all the transactions(step by step) to set the outbound IDOC configurations.
    Regards
    Appana

  • Help needed in Message Control - very urgent

    Hi Experts,
    I have one requirement where in the customer wants to stop creation of IDOC which posts Invoice using message control and message control status should be changed to RED color and also the message should be populated in the processing log saying 'IDOC processing failed, External customer numbers not maintained'.
    Could you please let me know any user exits or customer exits available for this purpose.
    I have searched all the possibilities.
    I have chanked the program RSNAST00 which picks up the data from table NAST and looks into table TNAPR to get the processing porgram for th selected output and also this program checks the partner profile and gets the process code which creates an inoice IDOC. I searched for user exits and customer exits to popolate the required messages and stop IDOC creation.
    I am an ABAPER and i know i need to write code to do validation, but could not find the exact place where to write? I any ABAPERS looking at this post, please reply me.
    Can anyone please advise me how to go about solving this issue?
    Thanks
    Srinath

    Hi,
       I am sending the requirement.
      Please send me the solution.
    Requirements:
    1.     EDI Invoice requires populating bottle UPC number not case UPC in IDOC and also populates customer PO number when invoice billing type is a credit.  These changes need to be reflected on EDI invoice (Idoc INVOIC02).
    Investigation:
    Requirement 1. EDI invoices are populating segment E1EDP19 qualifier 003 based on the unit of measure in the line item.  If shipment unit is CSE then it populates CSE upc, if shipment unit is EA then it populates Bottle UPC. 
    a.     It was found that the UPC populated on the EDI invoice was being read from material master – Additional data tab.  (Field SMEINH-EAN11).  For the EDI invoice, the customers expect the bottle UPC on this column.
    Requirement 2.  Need to always populate Segment E1EDK02 Qualifier 001 (customer PO) on the INVOIC02 idoc.  Standard SAP populates this information only when the billing type is F2 (regular invoice) and if the customer PO was entered in the Sales Order.
                                a) Premier requires this information to be populated in the idoc if the billing type is G2, RE, L2 also.
    Solution:
    Requirement 1.
           IDOC_OUTPUT_INVOIC function module needs to be changed to always populate the UPC number for the bottle UPC in segment E1EDP19 qualifier 003, field IDTNR.  This number is found on the material master – Basic data 1 view.  Field name is MARA-EAN11.   Please see screenshot of where in the material master to find the bottle UPC. 
         a. This change applies to all billing types (F2, G2, L2, RE etc).
           Requirement 2.
                 Change IDOC_OUTPUT_INVOIC function module to always populate customer PO information in Segment E1EDK02 qualifier 001, field BELNR.
    If billing type is equal to G2, L2, RE and VBRK-XBLNR not equal blanks then make BELNR = VBRK-XBLNR.
    Segment:  E1EDK02
                                  Field:  QUAL = 001
                                  Field:  BELNR = VBRK-XBLNR
    Please help me how to move a step ahead.
    Waiting for your immediate response.
    Thanks,
    Chandra.

  • How to send IDoc(Sales Order Confirmation) without Message control

    Hi,
    I need to send Sales Order confirmation,Delivery and Invoice through ALE (IDoc's). I am asked not to use MESSAGE CONTROL or CUSTOM IDoc to send confimation.
    I dont need to send a instant confirmation but i can do it at a specified time intervals.
    Do we have any other possiblity other than the both?
    Can you please give the steps to do, if possible?
    Thank you in advance,
    Gangolu.

    Hi
    This link may be useful
    Re: Re-open EDI - ORDCHG for outbound sales order

  • Need Help with Message Mapping in PI 7.1 - JDBC to IDOC

    I have an outgoing SQL function that sends multiple rows of data for use in creating an IDOC in ECC. I am trying to key the creation of new IDOCs (already did the maxOccurs trick to the IDOC definition) based on a field in the JDBC return data...
    JDBC Message Format...
    SEGNAM - TRANS_ID - MATERIAL - VKORG...ETC
    MARA -  00001 - 1234 - <space> - ...
    MARC -  00001 - 1234 - VK01 - ...
    MARA - 00002 - 9876 - <space> - ...
    MAKT - 00002 - 9876 - <space> - material description - ...
    Each time there is a new TRANS_ID, I need to indicate a new IDOC in the message mapping. I have tried all kinds of combinations of TRANS_ID --> dropContext --> splitValue and TRANS_ID --> collapseContext --> splitValue, but nothing has worked.
    Has anyone done this kind of message map (without any BPM please)?
    Thanks,
    Nathan

    Hello Nathan,
    For this one, you have to play with contexts.
    row 1 SEGNAM = MARA, TRANS_ID = 1, MATNR = 123...
    row 2 SEGNAM = MARC, TRANS_ID = 1, MATNR = 123, WERKS = PL01...
    row 3 SEGNAM = MARA, TRANS_ID = 2, MATNR = 987
    This also depends on the occurrence of the parent node. example, if I want MATNR to be populated, the logic would be like
    ex:
    IDOC1..unbounded) (The logic is the already provided in an earlier response)
    -->MATNR (1..1)
    MATNR --------> removeContext ----------------> FormatByExample --> MATNR
    TRANS_ID --> removeContext --> splitByValue:ValueChange --> /
    If the rows are not in order of trans_id, then you need to incorporate sorting into the logic above.
    Hope this helps,
    Mark

  • Is it possible to use BAPI-ALE to send an idoc using the message control?

    Hi Guys
    Is it possible to use BAPi-ALE to send an IDOC using a message control?
    I have configured the system to send an IDOC when a outbound delivery is saved in the system.
    I have done the following.
    1). I am using the std BAPI-ALE interface provided by the object type LIKP.
    2). I am using the method SAVEREPLICA for which an interface already exists in BDBG transaction.
    3). I hace created a distribution model in BD64 and added the BAPI - LIKP and SAVEREPLICA
    4). Created a partner profile ( using the generate partner profile option in the BD64 transaction )
    QUESTION:
    1). How do i associate the custom OUTPUT type created for Delivery ?
    2). I tried to associate the custom output type in the Partner profile definition under the message control tab but i am not sure which Process code to be used? Since the partner profile was generated automatically from BD64 it has an entry for SHP_OBDLV_SAVE_REPLICA as a message type in the outbound parameters. and i am unable to find a process code for this Message type in WE41. So what process code should i use in the Message control tab against the custom output type?
    3). Do i need to leave the message control tab empty without making any entry? If yes then how would the system come to know that it needs to trigger this partner profile when the custom output type is proposed by the system?
    will award points for useful answers
    Edited by: Workflow  learner on May 29, 2008 8:49 PM

    "any way"
    Applications such as ScreenRecycler, http://www.screenrecycler.com/ScreenRecycler.html, can do it.

  • IDOC Creation with message control

    I have created an IDoc using standard FM ' MASTER_IDOC_DISTRIBUTE' (without message control) for my own table. Now, I want to create IDoc with message control to send data from SAP to SAP. Can anyone please tell me the steps to create IDoc for my own database table and program to be created.
    Thanks in advance.

    Pankaj,
    You can access the following link to understand Custom IDOC creation flow.
    http://wiki.scn.sap.com/wiki/display/HOME/Step+by+Step+procedure+for+creation+of+IDOC
    In The Process code FM, you can call Z-API to update your own database table & create a program to trigger & process the IDOCs.
    Further, a report program can be created to trigger/monitor IDOCs.
    Ravi

Maybe you are looking for

  • FND_CONCURRENT.WAIT_FOR_REQUEST

    When running a large report in the concurrent manager through a PL/SQL Procedure. The concurrent manager appears to indicate that the request has completed normally however only the first step has completed and the XML Report Publisher portion has no

  • Messages.app not accepting my iCloud account

    HI, I've just upgraded my iMac to Yosemite (iMac (24-inch, Early 2009)) and I cannot log onto Messages using my iCloud account and gives the following error message. "Your Apple ID "<redacted>@mac.com" can't be used to set up iMessage at this time. I

  • Extracting an index of the last row in a spreadshee​t file.

    Hi, Here is a brief description of my program. I'm checking if an xls file me already exists.. if not, then I created it.. if it does, then I'm opening it and I want to add additional rows to it.. I'm looking for a way to extract the indexof last row

  • JCE: jurisdiction policy files

    Hello, I am new to this forum and my English is not very well. I have the following problem. I wish to use unlimited cryptography within an applet. I know, if I want to use unlimited crypto I have to install the unlimited jurisdiction policy files. B

  • PSE 7 tags and new install questions

    I have PSE7 on an older computer and I've purchased a new computer and would like the tags from the 30000+ images to move over to the new system. I see some possible pitfalls. New OS is Windows 7 and old OS is XP Paths will be different due to the Us