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
-
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 -
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
VenkateshHi 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,
GiovanniHi,
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..1Hello,
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,
SrikanthHi,
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
-
Maximum PDF file size for browsers to cache?
My site distributes daily newsletters via PDF that are typically about 2MB in size. A link is provided to the PDF, and when clicked, it opens the Adobe Reader plugin within the browser (Firefox, IE) and opens the file therein. Recently it was brought
-
I bought a used iPod touch and when I try to set up my iCloud account, it says that the maximum number of free accounts have been activated on this device. Is there a way around this? I thought I could maybe set up the account on my PC and go from th
-
IPhone 3GS cannot access wi-fi since 6.0 upgrade
I have an iPhone 3gs and since upgrading to IOS 6 I cannot get access to wi-fi either at home or on campus. I tried Reset Network Settings and that didn't help. Does anyone have any other suggestions?
-
Where to maintain departure zone
Hi Can anyone tell me where to maintain departure zone? As I need to maintain it in assignment:departure country/zone to shipping point.
-
iphone 4, since iso5 update, first my wifi greyed out, loss of camera, not total power loss, not even charging.. dead iphone 4. can any one help please..