Append IDOCs

hi,
I am working on payment program project which requires to send the file to bank in IDOC format. Currently we are not using iDOC.
In IDOC when we make the payments run it create file for each single vendor. so for example if we ahve 200 vendors to pay it creates 200 IDOC files, which doesn't make sens for banks to upload each file one by one. I heard that there is  way we can append these files together as one single file. Does anyone know how to do this? Is it something we can set up SAP oin the config side. If it is possible, can we append all the files regardless of Ccode and housebank. Because the project I am working on involves 10 Ccodes, all european.  we use an old version of SAP, 3.1i. I really appreciiate any input in this regard.
Thank you for your help.
-Priti
Edited by: Priti Singh on Jan 16, 2008 5:46 PM

go to WE20, select your bank partner profile [ you can find the partner profile in the house bank config FI12]
Now once you select the partner in we20, you will notice outbound type idocs configured for that partner. select payext [check what your outbiund type is] and double click on payext or whatever the type of idoc u have configured
on the next screen under output mode, if it is selected 'tranfer idoc immediately' ..then change that to collect idocs
==========
so what the means is that once you run f110 and generate medium that idocs are generated and collect until you run the program which would move the idocs to edi subsystem.
Hope this helped.

Similar Messages

  • Problem in transformation BPM

    We have the next escenary Idoc -> XI -> file. I received 3 Idoc and send 1 file with information of these Idoc.
    For made this I realice one BPM. This BPM have the next step:
    Into the loop
    1.- I received the idoc
    2.- Append idoc to table idoc.
    3.- Add 1 to count
    When I exit the loop I realice one step of transformation from table idoc to file  but when i realice these step i have one message of error.
    The message is "Expression must not return a multiline value".
    I check the structure of file and is 0 unbounded.The structure of idoc is 1 .
    thanks for your help.

    HI,
    Check the Multiline element for the Table Idoc container.
    Btw, where exactly you are collecting the idoc ? Is it idoc container or in file container ? Anyway accoridng to this you need to choose the Abstract interface with multiline option.
    And in the N:1 Mapping, SOurce Message type will be, 0...n and in the interface mapping also occurence you need to change..
    After chnaging the BPM, check for syntax check, i.e F7 and check it.
    Regards,
    Moorthy

  • Necessary steps for incorporating BPM collect pattern?

    I am working on my first BPM.
    The scenario is as follows: Supplier information (CREMAS) has to be splitted into their respective receiver countries (This has been done with a switch) For each country all CREMAS has to be collected into one XML and sent.
    I have decided on BPMCollectPatternTime.
    What should I do in order to include a CollectPattern in my BPM?
    What design objects should I copy to my namespace?
    And how to configure receive, loop and transformation?

    Hi Thomas,
    So you are sending multiple CREMAS IDocs to SAP XI and you want a BPM to collect the IDocs together into separate XML messages by country.
    In this case you dont need a switch statement, just use a time based collection routine and a correllation on the country field.
    We have used this method extensively, you want to choose how to terminate the BPM. You can set up an infinite loop scenario with a time based termination via a deadline branch.
    In order to use this in your own BPM create the Integration Process and add the following steps in the editor, this will aid you in understanding the various steps and how the process works.
    You will need 3 Abstract Message Types:
    1) Single IDoc Message Type
    2) Multiline IDoc Message Type for Appended IDocs
    3) Non Multiline IDoc Message type for the List of collected IDocs
    First add a block step
      Mode = Default
      Local Correlation = Define Correlation on Country
    Within the block step:
    Deadline Branch = 1 minute for example
      Control step = Throw Exception
                          |
    Main Branch = boldLoop Step Beginbold --- Receive Idoc Step --- Container Operation --- boldLoop Step Endbold
    Loop Step
      Condition = (1 = 1)
    Receive Step
      Message = Abstract Message Interface
      Use Correlation = Local Correlation
    Container Operation
      Operation Append
    Outside the block step:
    Transformation Step
    Send Step
    Hope this helps,
    Pete

  • IDOC Data record is appending with NULL characters instead of spaces.

    Hi Gurus,
    1)     We have created a port with Japanese characters for MATMAS05 (IDOC type) and trying to download an IDOC into an XML file using the ADAPTER, the actual data is less than the length of the IDOC string so we need to append the remaining spaces to each data record which in turn fills the segment pad but whereas in NON-UNICODE server the data record is appending with NULL characters instead of spaces.
    2)     For Japanese port the receiver port name in XML file is appearing with some junk characters in NON-UNICODE client, whereas in UNICODE client it is displaying the correct port name with Japanese characters.
    Your help will be appreciated.
    Thanks in Advance.

    ORA-06512 indicates a numeric or value-error line 2 seems to show to the first statement.
    Check the datatypes of your columns/items.
    Try to issue an update manually in SQL*Plus to see if it works generally.

  • Idoc to Flat File doing Append

    Hi All,
    We have a scenario where we have to receive an Idoc from SAP and then map it into a flat file to a third party using FTP protocol in File adapter.
    The main idea is to collect all the idocs generated each day and append it into the same target file during all the day so when a new day is coming XI should have to create a new file and start appending the data into it.
    Is this possible to do with XI sp14?
    Thanks in advance.

    hi
    yes u can do this. check for the blog on idoc collection:
    <u><b>Collecting idoc's without BPM refer this blog,</b></u>/people/stefan.grube/blog/2006/09/18/collecting-idocs-without-using-bpm
    Also, Just check the following two weblogs.
    /people/prasadbabu.nemalikanti3/blog/2006/02/24/collecting-and-bundling-vendor-records-from-different-multiple-interfaces-file-systempeoplesoft-and-sending-to-sap-r3-system-part-1
    /people/prasadbabu.nemalikanti3/blog/2006/02/27/collecting-and-bundling-vendor-records-from-different-multiple-interfaces-file-systempeoplesoft-and-sending-to-sap-r3-system-part-2
    Here i doubt of performance issues. Maybe u can collect the idocs in one file as and when it reaches xi and u can have another interface scheduled at the end of day that will transfer the file content to another file (appended)

  • Append or combine multiple IDOCs into a single IDOC file

    Hi All,
    We are implementing multiple new payment types that will generate IDOC files for us to send to the bank.  To keep the cost to the minimum, the requirement is to combine multiple IDOCs to a single file.
    I'd like to know the most efficient way to complete this task.  Also, I am new to this forum, please let me know if I need to include additional information.
    Your help will be deeply appreciated.
    Thank you,
    Joanne T.

    Hi Milind,
    One way you can do this is generate each report in PDF or Postscript, and then use Adobe Acrobat Distiller to combine the files into one PDF document.
    Regards,
    Stewart

  • Excel sheet to idoc

    hi all,
    the following report fetches data from an excel sheet to an internal table itab and then data from this itab is populated into an idoc.
    The segment ZVISTAPMS has two char fields.
    at the following point:
    Create a data segment for each line of I_ZVISTA
    LOOP AT ITAB INTO WA_ZVISTA_PM.
    MOVE-CORRESPONDING WA_ZVISTA_PM TO WA_Z1VISTAPM.
    data is not getting transferred to wa_zvistapm .
    kindly help ....
    regards
    shilpi
    REPORT ZIDOC3.
    DATA : ITAB TYPE TABLE OF DATA_TAB.
    CALL METHOD CL_GUI_FRONTEND_SERVICES=>GUI_UPLOAD
    EXPORTING
    FILENAME = 'E:\K.CSV'
    FILETYPE = 'ASC'
    HAS_FIELD_SEPARATOR = 'X'
    HEADER_LENGTH = 0
    READ_BY_LINE = 'X'
    DAT_MODE = SPACE
    CODEPAGE = SPACE
    IGNORE_CERR = ABAP_TRUE
    REPLACEMENT = '#'
    VIRUS_SCAN_PROFILE =
    IMPORTING
    FILELENGTH =
    HEADER =
    CHANGING
    DATA_TAB = ITAB
    EXCEPTIONS
    FILE_OPEN_ERROR = 1
    FILE_READ_ERROR = 2
    NO_BATCH = 3
    GUI_REFUSE_FILETRANSFER = 4
    INVALID_TYPE = 5
    NO_AUTHORITY = 6
    UNKNOWN_ERROR = 7
    BAD_DATA_FORMAT = 8
    HEADER_NOT_ALLOWED = 9
    SEPARATOR_NOT_ALLOWED = 10
    HEADER_TOO_LONG = 11
    UNKNOWN_DP_ERROR = 12
    ACCESS_DENIED = 13
    DP_OUT_OF_MEMORY = 14
    DISK_FULL = 15
    DP_TIMEOUT = 16
    NOT_SUPPORTED_BY_GUI = 17
    ERROR_NO_GUI = 18
    others = 19
    IF SY-SUBRC 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    CONSTANTS:
    C_MESTYP TYPE EDIDC-MESTYP VALUE 'ZVISTAPMSH',
    C_DOCTYP TYPE EDIDC-IDOCTP VALUE 'ZVISTAPM01S',
    C_SEGNAM TYPE EDIDD-SEGNAM VALUE 'Z1VISTAPMS'.
    DATA:
    I_ZVISTA TYPE ITAB OCCURS 6000,
    I_EDIDC TYPE EDIDC OCCURS 0,
    I_EDIDD TYPE EDIDD OCCURS 0,
    WA_ZVISTA_PM TYPE ITAB,
    WA_EDIDC TYPE EDIDC,
    WA_EDIDD TYPE EDIDD,
    WA_Z1VISTAPM TYPE Z1VISTAPMS,
    V_OCCMAX TYPE IDOCSYN-OCCMAX,
    V_NBSEG TYPE I.
    CLEAR WA_ZVISTA_PM.
    CLEAR WA_EDIDC.
    Save the message type and the basic IDoc type
    in the control segment
    MOVE C_MESTYP TO WA_EDIDC-MESTYP.
    MOVE C_DOCTYP TO WA_EDIDC-IDOCTP.
    Retrieve the maximum number of segments in the basic IDoc* typeSELECT MIN( OCCMAX ) FROM IDOCSYN INTO V_OCCMAX WHERE IDOCTYP EQ C_DOCTYP AND SEGTYP EQ C_SEGNAM.
    SELECT MIN( OCCMAX )
    FROM IDOCSYN
    INTO V_OCCMAX
    WHERE IDOCTYP EQ C_DOCTYP AND SEGTYP EQ C_SEGNAM.
    Create a data segment for each line of I_ZVISTA
    LOOP AT ITAB INTO WA_ZVISTA_PM.
    MOVE-CORRESPONDING WA_ZVISTA_PM TO WA_Z1VISTAPM.
    CLEAR WA_EDIDD.
    MOVE C_SEGNAM TO WA_EDIDD-SEGNAM.
    MOVE WA_Z1VISTAPM TO WA_EDIDD-SDATA.
    APPEND WA_EDIDD TO I_EDIDD.
    CLEAR WA_ZVISTA_PM.
    CLEAR WA_Z1VISTAPM.
    ENDLOOP.
    CALL FUNCTION 'MASTER_IDOC_DISTRIBUTE'
    EXPORTING
    MASTER_IDOC_CONTROL = wa_edidc
    OBJ_TYPE = ''
    CHNUM = ''
    TABLES
    COMMUNICATION_IDOC_CONTROL = i_edidc
    MASTER_IDOC_DATA = i_edidd
    EXCEPTIONS
    ERROR_IN_IDOC_CONTROL = 1
    ERROR_WRITING_IDOC_STATUS = 2
    ERROR_IN_IDOC_DATA = 3
    SENDING_LOGICAL_SYSTEM_UNKNOWN = 4
    OTHERS = 5
    IF SY-SUBRC 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.

    Hi,
    Export option is available once they click print IDOC. i.e, Menu->Idoc->print idoc after executing through WE02 and when list has been generated with technical name,description and value columns.Export option(with a right arrow sysmbol) is available above the list.
    At this point they are again going to menu->list->print thats the reason they are getting for print option and asking for printer.
    Please recheck again and explain the users.
    Definately it will solve the issue

  • N IDOCS OF SAME TYPE TO A FLAT FILE

    HI EXPERTS,
                      I have a scenario in which i have to receive IDOC and retrieve the value of a particular field.Giving the value in this field as input parameter to an RFC call get the number of IDOCs sent with this value(of the particular field).
    Then i have to append all these similar type of IDOCs into a single file (within a paricular timestamp say 10 minutes).If all the IDOCs does not come in the particular timestamp A clarification case is to be raised.
    Then this file is to be wrapped in a MIME structure using HTTPS and sent to the receiver.I need help in this regard.

    i worked out the solution with steffans blog

  • Item text is not appearing in the print output through IDOC?

    Hello ,
    I am changing the PO through IDOC. When ever there is change in the quantity ,net price and delivery date  the print out put is generated autoamtically and changes are appearing the print output.
    when ever there is change in the item text of PO print output is not generatiing but item text is updated in the PO.
    If i change manually print out is generating for item text also but through IDOC print output is not generated . please help to slove this isuue.
    i am passing the value as :
        idoc_data-segnam = 'E1BPMEPOTEXT'.
        e1bpmepotext-po_item = Po line item number .
        e1bpmepotext-text_id = txtid.
        e1bpmepotext-text_form = textform.
        e1bpmepotext-text_line = line item text .
        idoc_data-sdata = e1bpmepotext.
        APPEND idoc_data.
        CLEAR idoc_data.
        CLEAR e1bpmepotext.
    please help me it is urgent
    Thanks
    Venkatesh

    Hi Venkatesh,
    Check the condition record in transaction NACE. Whether the print output field is present in the condition record.
    Regards,
    Gajendra.

  • EDI IDOC generation for interface with Vendor software help needed.

    EDI IDOC help needed.
    We are NOT an EDI shop, but have a project to output data to Sales Force.com
    Sales Force requests IDOC output - eg. 810 Outbound Invoice.
    We will need to do a historical load of Orders/Quotes/Invoices from the past 2 years.
    Is there a function module or series of FM's that are used to generate the E2EDKxxxxx type segments?
    I have been testing using the IDOC_OUTPUT_INVOIC and IDOC_OUTPUT_ORDRSP FM's, but they generate segments begining with E1EDKxxxxx.
    Basicall we have a report program that the user enteres in the date range of Order/Quotes/Invoices they wish to extract, the the program needs to output a flat file (.txt) on the server which is then picked up by Sales Force.com.
    Also, is there a way to have in the Partner Profile a generic Partner under the "Type KU" that can be used for all orders/invoices so I don't have to create a KU Partner Type for each and every Sold-To customer we have?
    I am very new to EDI so any help would be greatly appreciated.
    Thanks.
    Scott.

    Hi Scott,
    We will need to do a historical load of Orders/Quotes/Invoices from the past 2 years.
    I know it's very tempting to use an interface for such loads if you anyhow have to create one. However, often the volume alone speaks against interface usage for such scenarios.
    Is there a function module or series of FM's that are used to generate the E2EDKxxxxx type segments? I have been testing using the IDOC_OUTPUT_INVOIC and IDOC_OUTPUT_ORDRSP FM's, but they generate segments begining with E1EDKxxxxx.
    Well, the E2* segments basically reflect the external name of the IDoc segment, whereas the function modules you're referring to basically just create an internal version of the IDoc. Once the IDoc framework then passes the IDocs to the partner, the segment names usually (depends on how the IDocs are passed on) get converted to their external name. If there are multiple versions of a segment, then the version number will be appended to the segment name.
    Note that IDoc segment definitions are only partially stored in the data dictionary. If you want to see all versions you should always use transaction WE31 to look at segments. There you can also see for example for E1EDK01 the several versions and when you then use in SE37 function module SEGMENT_EXTERNAL_NAME_GET you will see what SAP produces as the external name for segment E1EDK01. This function module is basically the one that handles the segment name translations.
    Ignore the comments for subsystem, this is basically an option in SAP to possibly trigger further external tools (e.g. mapping etc.) for handling the outbound IDocs.
    Again, the funny thing is that via the WE30 transaction, if i put in INVOIC02 as the Obj. name and see the segments, i can see that E2EDK01 there is a version 005, but if i go to SE11 and put in E2EDK01005 structure line and i get a "not found". We just have up to E2EDK01002.
    In the old days SAP used to generate E1, E2 and E3* structures in the data dictionary (SE11). The E1* structure reflected the character type representation of an IDoc segment, whereas the other two (definition and documentation) contained actual references to data elements (e.g. if you used a quantity field). However, in newer releases those dictionary structures (E2* & E3*) are no longer generated, because they're superfluous (meta data defined via WE31 is sufficient).
    Cheers, harald

  • Schedule agreement - delivery schedule by IDoc

    Hi Experts,
    I have an issue with IDoc types Delins/Deljit. If customer send us a new delivery schedule for next weeks, the old lines are deactivated. System replace old lines instead of appending them.
    I found in documentation the field in Idoc which should help me out, but I'm not sure how it should works.
    E1EDP10 - LABKY:     
    1 = Append, if FST02 = C
    2 = Replace, if FST02 = D
    Needs confirmation that Company X does not resend undelivered schedule lines
    What is FST02? Where should I maintain this field?
    Thanks in advance!

    Hi Anil ,
    Goto Transaction NACE , Select Application EL and then Click on O/p Types.
    Select your o/p and click on Processing routines.
    Make a copy of medium 1 and change it to 5. The program , Form , Form routine would remain the same.
    Maintain condition records with medium 5 in MN10.
    Ensure that email address exists in Vendor Master.
    Check with ur Basis to make sure that the setting are done in Transaction SCOT for sending document via PDF.
    Create a new Agreement and test it.
    Regards
    Ramesh Ch

  • IDOC: How to create child segment with abap code.

    Hi,
    I'am trying to write an abap code to create segments for an Idoc which structure is the following:
    ZLE_00060_DLVY
    >  E1EDL20
    > Z1DEL_CONS
    >Z1DEL_MAT_HEADER
    > Z1DEL_MAT
    > E1EDL20RET2
    > E1EDL22
    > E1EDL21
    > E1EDL23
    > E1EDL51
    I receive a sintax error: Error in IDoc with status 26 .
    Checking the result I note all segment at the same level and an error about the segment E1EDL22
    EDI: Syntax error in IDoc (segment cannot be identified)
         Message no. E0078
    Diagnosis
         The segment E1EDL22 does not occur at the current level of the basic
         type DELVRY05 (extension ZLE_00060_DLVY).
         This error can have several reasons:
         o   The segment E1EDL22 is assigned to a group whose header segment does
             not occur.
         o   The segment E1EDL22 does not exist in the syntax description of the
             basic type DELVRY05 (extension ZLE_00060_DLVY).
         o   The sequence of segments in the group in which the segment appears
             is incorrect.
         Previous errors ('mandatory' segment or group missing) may be due to
         this error.
    Procedure
         Please check the IDoc or the syntax description of the basic type
         DELVRY05 (extension ZLE_00060_DLVY).
    After the error I have:
    data records
    E1EDL20
    Z1DEL_CONS
    Z1DEL_MAT_HEADER
    Z1DEL_MAT
    Z1DEL_MAT
    Z1DEL_MAT
    Z1DEL_MAT
    Z1DEL_MAT
    Z1DEL_MAT
    Z1DEL_MAT
    Z1DEL_MAT
    Z1DEL_MAT
    Z1DEL_MAT
    Z1DEL_MAT
    Z1DEL_MAT
    Z1DEL_MAT
    Z1DEL_MAT
    E1EDL20RET2
    E1EDL22
    E1EDL21
    Abap code:
            idoc_data-segnam = 'Z1DEL_CONS'.
            idoc_data-sdata = s_z1del_cons.
            append idoc_data.
              idoc_data-segnam = 'Z1DEL_MAT_HEADER'.
              s_z1del_mat_header-tsegment = 'MATERIAL'.
              idoc_data-sdata = s_z1del_mat_header.
              append idoc_data.
            clear idoc_data-sdata.                            <<<<<<<<<<< how to indent the structure because this is a child.
             idoc_data-sdata = s_Z1DEL_MAT.
             idoc_data-segnam = 'Z1DEL_MAT'.
             append idoc_data.
             idoc_data-segnam = 'E1EDL20RET2'.
             idoc_data-sdata = s_E1EDL20RET2.
             append idoc_data.
             clear idoc_data.
             idoc_data-segnam = 'E1EDL22'.
             idoc_data-sdata = s_e1edl22.
             append idoc_data.
             clear idoc_data.
             idoc_data-segnam = 'E1EDL21'.
             idoc_data-sdata = s_e1edl21.
             append idoc_data.
    Any help will be well appreciated.
    Thanks in advance.
    Regards,
        Giovanni

    Hi,
    following in debugging mode the abap code of the INCLUDE ZXTRKU02 where is defined the TABLES IDOC_DATA STRUCTURE  EDIDD, I find that all field of the table IDOC_DATA are not set. More exactly my expectation is to find values for SEGNUM, HLEVEL, PSGNUM.
    In a few words I need to execute an enhancement, via abap code, of the struscure of the idoc before sending it out since I have a requirement to test this enhancement in my XI environment, receiving as input this ideoc modified.
    Then, I need to add a new segment and one child.
    Any suggestion will be well appreciated.
    Thanks in advance.
    Regards,
        Giovanni

  • Transfer data from one server to another server using idocs

    hi,crm
       i have a data in crm system, i want to download this data and upload into another crm system by using idocs.
      please any one explain.

    Hi Ravi,
          my senario is i have to transfer  data from  crm 5.0 to 7.0.
          i have marketing attributes
        t-code: bp----> marketing attributes
       i want to transfer marketing attributes from A to B.
           i created one structure for marketing attributes around 160. and i added this structure fields into custom segments.
          i created custom idoc type and i added segments into idoc.
        i created one function module for getting data from structure and passing to segments and idoctype.
       check the code below.
    FUNCTION ZCRMXIF_MKT_DATA.
    *"*"Local Interface:
    *"  IMPORTING
    *"     REFERENCE(EV_MKT_ATTR) TYPE  ZCRMXIF_MKT_STR
    Data : c_segment type ZE101CRMXIF_MKT_ATTR_DATA,
           c_segment1 type ZE101CRMXIF_MKT_ATTR_DATA1,
           c_segment2  type ZE101CRMXIF_MKT_ATTR_DATA2,
           c_segment3 type  ZE101CRMXIF_MKT_ATTR_DATA3,
           c_segment4 type  ZE101CRMXIF_MKT_ATTR_DATA4.
    data:  c_messagetype type c value'zcrmxif_partner_save',
           c_idoc_type type c value'zcrmxif_partner_save_mkt',
           idoc_control like edidc,
           t_comm_control like edidc occurs 0 with header line,
           idoc_data like edidd occurs 0 with header line.
    data: lt_mkt_attr type Zcrmxif_mkt_str occurs 0 with header line,
           ls_mkt_attr like zcrmxif_mkt_str.
    loop at lt_mkt_attr.
                c_segment-PARTNER = lt_mkt_attr-partner.
                c_segment-PARTNER_GUID = lt_mkt_attr-partner_guid.
                  idoc_data-segnam = 'ZE101CRMXIF_MKT_ATTR_DATA' .
                  idoc_data-sdata = c_segment.
                 append idoc_data.
               c_segment1-ADHAR_NUM = lt_mkt_attr-ADHAR_NUM.
               c_segment1-ADULTS = lt_mkt_attr-ADULTS.
               c_segment1-AGEGROUP = lt_mkt_attr-AGEGROUP.
               c_segment1-AG_CODE = lt_mkt_attr-AG_CODE.
               c_segment1-AMERICANEXPRESS = lt_mkt_attr-AMERICANEXPRESS.
               c_segment1-ANNUALINCOME = lt_mkt_attr-ANNUALINCOME.
               c_segment1-AUTO_TYPE_1 = lt_mkt_attr-AUTO_TYPE_1.
               c_segment1-AUTO_TYPE_2 = lt_mkt_attr-AUTO_TYPE_2.
               c_segment1-AUTO_TYPE_3 = lt_mkt_attr-AUTO_TYPE_3.
               c_segment1-A_HOMEDEL = lt_mkt_attr-A_HOMEDEL.
               c_segment1-BANKNAME = lt_mkt_attr-BANKNAME.
               c_segment1-BLOODPRESSURE = lt_mkt_attr-BLOODPRESSURE.
               c_segment1-BPRELATION = lt_mkt_attr-BPRELATION.
               c_segment1-BRAND = lt_mkt_attr-BRAND.
               c_segment1-CC1001 = lt_mkt_attr-CC1001.
               c_segment1-CC1002 = lt_mkt_attr-CC1002.
               c_segment1-CCCLASSIC = lt_mkt_attr-CCCLASSIC.
               c_segment1-CCGOLD = lt_mkt_attr-CCGOLD.
               c_segment1-CCOTHERS = lt_mkt_attr-CCOTHERS.
               c_segment1-CCPLAT = lt_mkt_attr-CCPLAT.
               c_segment1-CCREDIT = lt_mkt_attr-CCREDIT.
               c_segment1-ccsilver = lt_mkt_attr-ccsilver.
               c_segment1-CCTITA = lt_mkt_attr-CCTITA.
               c_segment1-CDEBIT = lt_mkt_attr-CDEBIT.
               c_segment1-CHILDREN = lt_mkt_attr-CHILDREN.
               c_segment1-CITIBANK = lt_mkt_attr-CITIBANK.
               c_segment1-CNAPP = lt_mkt_attr-CNAPP.
               c_segment1-CNC_PRINT = lt_mkt_attr-CNC_PRINT.
               c_segment1-CNC_SIZE = lt_mkt_attr-CNC_SIZE.
               c_segment1-CNC_SIZE_NEW = lt_mkt_attr-CNC_SIZE_NEW.
               c_segment1-CNC_STATUS = lt_mkt_attr-CNC_STATUS.
               c_segment1-CNC_TIME_ZONE = lt_mkt_attr-CNC_TIME_ZONE.
               c_segment1-CNC_TIME_ZONE_NEW = lt_mkt_attr-CNC_TIME_ZONE_NEW.
               c_segment1-CONDFIRSTZ = lt_mkt_attr-CONDFIRSTZ.
               c_segment1-COMPANY = lt_mkt_attr-COMPANY.
               c_segment1-CONDSECOND = lt_mkt_attr-CONDSECOND.
               c_segment1-CONDTHIRD = lt_mkt_attr-CONDTHIRD.
               c_segment1-CUSTOMERTYPE = lt_mkt_attr-CUSTOMERTYPE.
               c_segment1-CUST_BUSINESS_NAME = lt_mkt_attr-CUST_BUSINESS_NAME.
               c_segment1-DECL_DATE = lt_mkt_attr-DECL_DATE.
               c_segment1-DED = lt_mkt_attr-DED.
               c_segment1-DIST = lt_mkt_attr-DIST.
               c_segment1-DNC = lt_mkt_attr-DNC.
               c_segment1-DNCEMAIL = lt_mkt_attr-DNCEMAIL.
               c_segment1-DNCPHONE = lt_mkt_attr-DNCPHONE.
               c_segment1-DNCPOST = lt_mkt_attr-DNCPOST.
               c_segment1-DOB_FAM_2 = lt_mkt_attr-DOB_FAM_2.
               c_segment1-DOB_FAM_3 = lt_mkt_attr-DOB_FAM_3.
               c_segment1-DOB_FAM_4 = lt_mkt_attr-DOB_FAM_4.
               c_segment1-PLANG = lt_mkt_attr-PLANG.
    *           c_segment1-APPL_SNAME = lt_mkt_attr-APPL_SNAME.
                 idoc_data-segnam =  'ZE101CRMXIF_MKT_ATTR_DATA1'.
                idoc_data-sdata = c_segment4.
                 append idoc_data.
                c_segment2-DTPCARDGIVCOU = lt_mkt_attr-DTPCARDGIVCOU.
                c_segment2-DTPCARDOFF = lt_mkt_attr-DTPCARDOFF.
                c_segment2-DTPCARDOTHSTORE = lt_mkt_attr-DTPCARDOTHSTORE.
                c_segment2-DTPCARDRETCOU = lt_mkt_attr-DTPCARDRETCOU.
                c_segment2-DTPCARDSHREDDED = lt_mkt_attr-DTPCARDSHREDDED.
                c_segment2-DTWELCOMCALL = lt_mkt_attr-DTWELCOMCALL.
                c_segment2-DUDZ = lt_mkt_attr-DUDZ.
                c_segment2-EDUDR = lt_mkt_attr-EDUDR.
                c_segment2-DTPCARDSTORE = lt_mkt_attr-DTPCARDSTORE.
                c_segment2-EDUER = lt_mkt_attr-EDUER.
                c_segment2-EDUG = lt_mkt_attr-EDUG.
                c_segment2-EDUHS = lt_mkt_attr-EDUHS.
                c_segment2-EDULAW = lt_mkt_attr-EDULAW.
                c_segment2-FOURWHEELER = lt_mkt_attr-FOURWHEELER.
                c_segment2-FULL_NAME = lt_mkt_attr-FULL_NAME.
                c_segment2-FWLT15KCC = lt_mkt_attr-FWLT15KCC.
                c_segment2-FAMILY_MEMBER_NAME = lt_mkt_attr-FAMILY_MEMBER_NAME.
                c_segment2-FAMILYMEMBERS = lt_mkt_attr-FAMILYMEMBERS.
                c_segment2-FAMILY_MEMBER_NAME_2 = lt_mkt_attr-FAMILY_MEMBER_NAME_2.
                c_segment2-FAMILY_MEMBER_NAME_3 = lt_mkt_attr-FAMILY_MEMBER_NAME_3.
                c_segment2-FAMILY_MEMBER_NAME_4 = lt_mkt_attr-FAMILY_MEMBER_NAME_4.
                c_segment2-FAMILY_MEMBER_NAME_5 = lt_mkt_attr-FAMILY_MEMBER_NAME_5.
                c_segment2-FWLT1KCC = lt_mkt_attr-FWLT1KCC.
                c_segment2-FWLT2KCC = lt_mkt_attr-FWLT2KCC.
                c_segment2-GEO_WING_LAT = lt_mkt_attr-GEO_WING_LAT.
                c_segment2-GEO_WING_LONG = lt_mkt_attr-GEO_WING_LONG.
                c_segment2-HDFCBANK = lt_mkt_attr-HDFCBANK.
                c_segment2-HSBC = lt_mkt_attr-HSBC.
                c_segment2-ICICIBANK = lt_mkt_attr-ICICIBANK.
                c_segment2-INCMTO = lt_mkt_attr-INCMTO.
                c_segment2-INCT2F = lt_mkt_attr-INCT2F.
                c_segment2-INCT2T = lt_mkt_attr-INCT2T.
                c_segment2-IND_SECTOR = lt_mkt_attr-IND_SECTOR.
                c_segment2-INTERNETCHATTING = lt_mkt_attr-INTERNETCHATTING.
                c_segment2-LICENSE_INFO = lt_mkt_attr-LICENSE_INFO.
                c_segment2-INTERNET_CONNECT = lt_mkt_attr-INTERNET_CONNECT.
                c_segment2-MFAM_INCOME = lt_mkt_attr-MFAM_INCOME.
                c_segment2-MODEL_1 = lt_mkt_attr-MODEL_1.
                c_segment2-MODEL_2 = lt_mkt_attr-MODEL_2.
                c_segment2-MODEL_3 = lt_mkt_attr-MODEL_3.
                c_segment2-MOTHERS_NAME = lt_mkt_attr-MOTHERS_NAME.
                c_segment2-MO_OF_P = lt_mkt_attr-MO_OF_P.
                c_segment2-MO_OF_P2 = lt_mkt_attr-MO_OF_P2.
                c_segment2-MO_OF_P3 = lt_mkt_attr-MO_OF_P3.
                c_segment2-MY_OF_P3 = lt_mkt_attr-MY_OF_P3.
                c_segment2-NOMINEES_NAME = lt_mkt_attr-NOMINEES_NAME.
                c_segment2-NONE = lt_mkt_attr-NONE.
                c_segment2-OCCU_OD_OTHR = lt_mkt_attr-OCCU_OD_OTHR.
                c_segment2-OCC_FAM_1 = lt_mkt_attr-OCC_FAM_1.
                c_segment2-OCC_FAM_2 = lt_mkt_attr-OCC_FAM_2.
                c_segment2-OCC_FAM_3 = lt_mkt_attr-OCC_FAM_3.
                c_segment2-OCC_FAM_4 = lt_mkt_attr-OCC_FAM_4.
                c_segment2-OCC_FAM_5 = lt_mkt_attr-OCC_FAM_5.
                c_segment2-OCC_NOM = lt_mkt_attr-OCC_NOM.
               idoc_data-segnam = 'ZE101CRMXIF_MKT_ATTR_DATA2'.
               idoc_data-sdata = c_segment4.
               append idoc_data.
               C_segment3-PLANG_OTHR = lt_mkt_attr-PLANG_OTHR.
               C_segment3-REF_MAILADD = lt_mkt_attr-REF_MAILADD.
               C_segment3-RELATION_FAM_1 = lt_mkt_attr-RELATION_FAM_1.
               C_segment3-RELATION_FAM_2 = lt_mkt_attr-RELATION_FAM_2.
               C_segment3-RELATION_FAM_3 = lt_mkt_attr-RELATION_FAM_3.
               C_segment3-RELATION_FAM_4 = lt_mkt_attr-RELATION_FAM_4.
               C_segment3-RELATION_FAM_5 = lt_mkt_attr-RELATION_FAM_5.
               C_segment3-REL_ACTIVE_STAT = lt_mkt_attr-REL_ACTIVE_STAT.
               C_segment3-REL_KISAN_MITRA_STAT = lt_mkt_attr-REL_KISAN_MITRA_STAT.
               C_segment3-REL_NOM = lt_mkt_attr-REL_NOM.
               C_segment3-REL_PLASTIC_CARD_STAT = lt_mkt_attr-REL_PLASTIC_CARD_STAT.
               C_segment3-REL_STAFF_STAT = lt_mkt_attr-REL_STAFF_STAT.
               C_segment3-REMARKS = lt_mkt_attr-REMARKS.
               C_segment3-ROCN = lt_mkt_attr-ROCN.
               C_segment3-ROCN_FAM_1 = lt_mkt_attr-ROCN_FAM_1.
               C_segment3-ROCN_FAM_2 = lt_mkt_attr-ROCN_FAM_2.
               C_segment3-ROCN_FAM_3 = lt_mkt_attr-ROCN_FAM_3.
               C_segment3-ROCN_FAM_4 = lt_mkt_attr-ROCN_FAM_4.
               C_segment3-ROOMS_PER_FLAT = lt_mkt_attr-ROOMS_PER_FLAT.
               C_segment3-SCH_NUM = lt_mkt_attr-SCH_NUM .
               C_segment3-SECONDARYEMAIL = lt_mkt_attr-SECONDARYEMAIL.
               C_segment3-SERIAL_NUM = lt_mkt_attr-SERIAL_NUM.
               C_segment3-SOCIETY_MEMBER = lt_mkt_attr-SOCIETY_MEMBER.
               C_segment3-SOC_CONTNO_LL = lt_mkt_attr-SOC_CONTNO_LL.
               C_segment3-SOC_CONTNO_MOB = lt_mkt_attr-SOC_CONTNO_MOB.
               C_segment3-SOC_CONT_DESIG = lt_mkt_attr-SOC_CONT_DESIG.
               C_segment3-SOC_CONT_PER_NAM = lt_mkt_attr-SOC_CONT_PER_NAM.
               C_segment3-STANCHART = lt_mkt_attr-STANCHART.
               C_segment3-ST_CODE = lt_mkt_attr-ST_CODE.
               C_segment3-ST_CODE_OLD = lt_mkt_attr-ST_CODE_OLD.
               C_segment3-ST_EMP_CODE = lt_mkt_attr-ST_EMP_CODE.
               C_segment3-TEENAGERS = lt_mkt_attr-TEENAGERS.
               C_segment3-SBI = lt_mkt_attr-SBI.
               C_segment3-ZLAT1 = lt_mkt_attr-ZLAT1.
               C_segment3-ZLONG1 = lt_mkt_attr-ZLONG1.
               C_segment3-ZWING_GEOCODE = lt_mkt_attr-ZWING_GEOCODE.
               C_segment3-ZNAMEPLATE_PHOTO = lt_mkt_attr-ZNAMEPLATE_PHOTO.
               C_segment3-ZLATITUDE = lt_mkt_attr-ZLATITUDE.
               C_segment3-ZLONGITUDE = lt_mkt_attr-ZLONGITUDE.
               C_segment3-ZLATITUDE_N_LONGITUDE = lt_mkt_attr-ZLATITUDE_N_LONGITUDE.
               C_segment3-ZWING_PHOTO = lt_mkt_attr-ZWING_PHOTO.
               C_segment3-ZCATEGORY_SHOPS = lt_mkt_attr-ZCATEGORY_SHOPS.
               C_segment3-ZNUM_OF_SHOPS = lt_mkt_attr-ZNUM_OF_SHOPS.
               C_segment3-ZELECT_SURVILL = lt_mkt_attr-ZELECT_SURVILL.
               C_segment3-ZBUILDING_TYPE = lt_mkt_attr-ZBUILDING_TYPE.
               C_segment3-ZFLATS_PER_FLOOR = lt_mkt_attr-ZFLATS_PER_FLOOR.
               C_segment3-ZBULDNG_FLOOR = lt_mkt_attr-ZBULDNG_FLOOR.
               C_segment3-ZSWIMMING_POOL = lt_mkt_attr-ZSWIMMING_POOL.
               C_segment3-ZGYM = lt_mkt_attr-ZGYM.
               idoc_data-segnam = 'ZE101CRMXIF_MKT_ATTR_DATA3'.
               idoc_data-sdata = c_segment4.
               append idoc_data.
              c_segment4-others = lt_mkt_attr-others.
              c_segment4-OCCU_OD = lt_mkt_attr-OCCU_OD.
              c_segment4-ZFLAT_TYPE = lt_mkt_attr-ZFLAT_TYPE.
              idoc_data-segnam = 'ZE101CRMXIF_MKT_ATTR_DATA4'.
               idoc_data-sdata = c_segment4.
               append idoc_data.
            ENDLOOP.
            IDOC_CONTROL-MESTYP = c_messagetype.
            IDOC_CONTROL-DOCTYP = c_idoc_type.
              CALL FUNCTION 'MASTER_IDOC_DISTRIBUTE'
                EXPORTING
                  MASTER_IDOC_CONTROL                  = IDOC_CONTROL
    *             OBJ_TYPE                             = ''
    *             CHNUM                                = ''
                TABLES
                  COMMUNICATION_IDOC_CONTROL           = t_comm_control
                  MASTER_IDOC_DATA                     = IDOC_DATA
    *           EXCEPTIONS
    *             ERROR_IN_IDOC_CONTROL                = 1
    *             ERROR_WRITING_IDOC_STATUS            = 2
    *             ERROR_IN_IDOC_DATA                   = 3
    *             SENDING_LOGICAL_SYSTEM_UNKNOWN       = 4
    *             OTHERS                               = 5
              IF SY-SUBRC <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
              ENDIF.
    ENDFUNCTION.
    i implement a badi "CRMXIF_PARTNER_MAP"
    data ls_mkt_attr type zcrmxif_mkt_str.
      LOOP AT cs_data_mapped INTO  ls_data_mapped .
        lv_tabix = sy-tabix.
        loop at ls_data_mapped-ZZPARTNER-ZZMKT_ATTR into ls_mkt_attr.
          read table ls_data_mapped-zzpartner-ZZMKT_ATTR into ls_mkt_attr index 1.
           if ls_mkt_attr is not initial.
                   CALL FUNCTION 'ZCRMXIF_MKT_DATA'
                     EXPORTING
                       EV_MKT_ATTR       = ls_mkt_attr
                   endif.
         endloop.
         read table ls_data_mapped-zzpartner-ZZMKT_ATTR into ls_mkt_attr index 1.
             MODIFY  cs_data_mapped FROM ls_data_mapped INDEX lv_tabix.
      endloop.
    i ddn't get data into sructure.
    please explain how to doit.

  • How to create additional Line in file based on condition available as part of ZINVOIC02 Idoc segment

    Scenario Details:
    Receiving Zinvoic02 Idoc in PI. Idoc to file translation creates comma separated file with .csv extn
    The logic was kept in such a way that how many E1EDP01 (items) are available in IDoc that many no of records will be created in csv file.
    The file logic for some the fields is as below:
    No of records
    InvNumber
    InvDate
    CusNumber
    LineitemDesc
    Tax1Type
    Tax1%
    for 1st E1EDP01
    E1EDK01-BELNR
    E1EDK03-DATUM
    E1EDK01-PARTN
    Populate when E1EDP04/MSKWZ=O2 or O4 with E1EDP19/KTEXT
    Hardcode when E1EDP04/MSKWZ=O2 or O4
    Sum all E1EDP04 /MSATZ when E1EDP04/MSKWZ=O2 or O4
    for 2nd E1EDP01
    E1EDK01-BELNR
    E1EDK01-DATUM
    E1EDK01-PARTN
    same as above
    same as above
    same as above
    for 3rd E1EDP01
    E1EDK01-BELNR
    E1EDK03-DATUM
    E1EDK01-PARTN
    same as above
    same as above
    same as above
    Additional Line to be created when one or more of E1EDP01 is having E1EDP04/MSKWZ = O3
    same as above
    same as above
    same as above
    Hardcode "REIM for USE TAX"
    Hardcode ""
    Hardcode ""
    Now we have got addition requirement to add a new lineitem when tax code is equal to O3 for any of the E1EDP01.
    Is it possible to create additional lineitem based on condition. If yes, please share what should be the approach.
    How we can create the additional lineitem?
    Currently we are using E1EDP01 to do context handling.
    The target structure is :
    MT_FILE
         INVOICE     0..unbounded
              InvNumber     0..1
              InvDate          0..1
              CusNumber     0..1
              LineitemDesc     0..1
              Tax1Type          0..1
              Tax1%               0..1

    Hello,
    Please add one extra field in the data structure of the target mapping and let its occurrence be 0..unbounded under the root node 'MT_ADP_Invoice'.
    Apply the condition, if tax code MSKWZ (with its context changed to E1EDP01) equalsS to '03', then map it to the newly created target field whose occurrence is 0..unbounded.
    This will then create an additional field which is your requirement.
    The above is one way.
    But if you want to have the same target field name as ADP_File appended for tax field being '03'.
    Then in that case you can you two message mapping for one common operational mapping / interface.
    In the first message mapping you need to have one target data structure created with the source data structure remaining the same as the one shown by you in scrn shot. Now this target data structure will be similar to the source, except that you need to add one more field at the end(name different from other fields) in target (whose occurrence should be 0..unbounded), and it needs to be mapped to E1EDP01 provided the tax code field MSKWZ(its context changed to E1EDP01) equalsS to constant '03'.
    In the second message mapping you need to map the target structure of previous message mapping to the actual required structure. The newly added field should be mapped to ADP_File of your final target structure.
    This will then create the same structure as required.
    Note : Please change the occurence of ADP_File to 0..unbounded.
    Regards,
    Souvik

  • Creating a PO using OREDERS05 IDOC

    Hi All,
    I need to create a PO using the OREDRS05 Idoc, insted of that a standard SO is getting created as I am using ORDE process code. I dnt find any process code for creating a PO related to ORDERS05.
    Is there any process code for creating a PO or we need to it any other way.
    Please let me know how to reslove this. Its an urgent requirment needs to be resolved ASAP.
    Thanks,
    Srikanth

    Hi,
    Here is the sample code to do that...
    *---> po header data
      wa_poheader-vendor    =  your vendor..
      wa_poheader-doc_type  =  Your doc type..check with Functional contact....
      wa_poheader-purch_org =  Purchasing Org..
      wa_poheader-pur_group =  Purchasing Group
    *---> po header data (change toolbar)
      wa_poheaderx-vendor    =  'X'.
      wa_poheaderx-doc_type  =  'X'.
      wa_poheaderx-purch_org =  'X'.
      wa_poheaderx-pur_group =  'X'.
    *---> poitem data
    data: item like ekpo-ebelp.
    item = '0010'.
    loop at t_parts.
      it_poitem-po_item  =  '00010'.
      IT_POITEM-PLANT    =  Plant..
      IT_POITEM-STGE_LOC =  Sloc...
    *---> poitemx (item data change toolbar)
      it_poitemx-po_item  =  '0010'.
      it_poitemx-po_itemx  =  'X'.
      IT_POITEMX-PLANT    =  'X'.
      IT_POITEMX-STGE_LOC =  'X'.
    *---> add record's to internal table
      APPEND:  it_poitem,
             it_poitemx.
    endloop.
    *call bapi_po_create1
      CLEAR v_ebeln.
      CALL FUNCTION 'BAPI_PO_CREATE1'
        EXPORTING
          poheader         = wa_poheader
          poheaderx        = wa_poheaderx
        IMPORTING
          exppurchaseorder = v_ebeln
        TABLES
          return           = it_return
          poitem           = it_poitem
          poitemx          = it_poitemx.
    *---> check the return table for error message
      READ TABLE it_return WITH KEY type = 'E'.
      IF sy-subrc NE 0.
        CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
          EXPORTING
            wait = 'X'.
      endif.
    Thanks,
    Murali

Maybe you are looking for