Map Header field on Item field
hello everibody.
I have a very simple problem but i'm not is possible solve with standard graphycal mapping.
I need map a field on header structure in all relative field on item structure:
example:
inbound message:
<header>
<field1>a</field1>
<row>b</row>
<row>c</row>
</header>
result:
<header>
<fieldA>a</fieldA>
<row>
<fieldB>a</fieldB> (this is the field1 value)
<fieldC>b</fieldC>
</row>
<row>
<fieldB>a</fieldB> (this is the field1 value)
<fieldC>c</fieldC>
</row>
</header>
hany help?
Use copy value function available in Constants category.
Similar Messages
-
Mapping Header Values to Item Nodes
Using the graphical mapping editor, I need to map values from a source header level node to a target item level node for each item in the source structure.
eg.
<b>Source</b>
<HEADER>
<H1>HeaderValue1</H1>
</HEADER>
<ITEM>
<I1>Item1Value</I1>
</ITEM>
<ITEM>
<I1>Item2Value</I1>
</ITEM>
<b>Target</b>
<ITEM>
<H1>HeaderValue1</H1>
<I1>Item1Value</I1>
</ITEM>
<ITEM>
<H1>HeaderValue1</H1>
<I1>Item2Value</I1>
</ITEM>
If I map the source <ITEM> node to the target <ITEM> node and the <H1> and <I1> nodes as shown above, the <H1> node only appears on the first item. I need the <H1> node to appear for all target <ITEM> nodes.
Any assistance would be appreciated.
Thanks.Hi Briggs,
This Mapping will Solve Ur Problem
Source Structure:
MT1 1..1
Header 1..1
H1 1..1
Item 0..unbound
L1 1..1
Target Structure:
MT2
Item 0..unbound
H1 1..1
L1 1..1
Mapping that solve Your Problem is :
Item(source)-->Item(dest)
H1(Source)>copy value (property=0)>H1(dest)
L1(source)-->L1(source) -
Mapping header and detail fields
I want to map concatenated 1 header source field and 2 detail source fields into 1 target detail row field. Is it possible? I am getting message mapping error in SXMB_MONI. I changed the DT_Detail_Row.fieldFixedLengths, still getting error. Any suggestions or ideas how I can map these fields?
Thanks.Hey,
y cant u use 2 Staandard concat functions
where u concat ur two source fields using one concat and concat that output with the header source field using another concat fucntion and map that output to target field.
detail1
Concat----
>
detail2 concat----->target
Header----
>
cheers
jithesh -
Custom fields added on PO header and PO item in ME21n
hi everybody
I have added 2 fields on PO header and PO item level in ME21N screen, everything is working fine
but the issue is that if the Customer Data tab page is not opened at the Header Level, the additional fields in Customer Data tab page at Item Level are not displayed as well
Does anybody knws why this happens?May be i wrongly explained, all the data are getting populated on the screen and in the database tables.
Its just that if the Customer tab on PO header is not opened, the fields in the Customer tab in PO item level are not getting displayed
As such, the data are being saved in the tables.
Its only if the customer tab on header is not opened, the fields in Customer tab in PO item are not displayed.
Otherwise if PO header customer tab is opened, everything is ok -
Problem mapping header/items in 1 Message Type
Hello,
I'm currently facing the following problem in my message mapping:
On my 'CRM side'
I have a MessageType (DataType) consisting out of +/- 10 header fields and a field called 'ITEMS'
'ITEMS' is table type field consisting out of +/- 5 item fields. Ofcourse 'ITEMS' can occur min1 time - max ?? times
On My 'Dbase' side I have a MT containing 2 'update' statements
1 table is updated for every header record ( mapped with header fields )
1 table is updated for every item ( mapped with header fields as well as item fields )
As far as the header data is concerned everything works fine.
The problem is in the update per item.
The fields that are mapped with the fields inside 'ITEMS' are working fine.
But ... I need to put 3 fields from my header level in the 'item table' as well. So I mapped them from header level to 'Item table'
This seems to work fine as long as I have only 1 item. From the moment I have more then 1 item, the mapping throws an error that he can not create the target item.
I have the impression that he 'looses' the link between header and item(s) from the second item on.
Can somebody let me know that I have to use a special function or something to do this type of mapping ( mapping from header level towards item level ) ?
I tried already some things with the functions 'Remove context' and 'CollapseContext' but this does not seem to help.
Every help is welcome,Hi,
Here you will be passing some values from Header Segments to Item level. So definately there should be a link available between them to pass the appropriate values..
For multiple Item fields you need to use the single header fileds as common
you should go for UseOneToMany API in Node function
Header field to be passed --------->
(Update table for Item level) ITem Node -------> UseOneToMany -----> splitByValue -------> Target field
(Update table for Item level) ITem Node ------->
Thanks
swarup -
Call HEADER value into ITEM level in mapping
HI,
my structure is as below:
H
I
I
I
P
H
I
I
P
P
H
I
I
I
I
I
P
I have created a sequence in DB and retriving the value from DB using lookup for the header level(H) for feild ID.by using the code:
//write your code here
//write your code here
String Query = " ";
Channel channel = null;
DataBaseAccessor accessor = null;
DataBaseResult resultSet = null;
try{
//container.getTrace().addWarning("Obtaining channel");
channel = LookupService.getChannel( businessSystem, communicationChannel);
//container.getTrace().addWarning("Channel OK");
//Get a system accessor for the channel. As the call is being made to an DB, an DatabaseAccessor is obtained.
accessor = LookupService.getDataBaseAccessor(channel);
//container.getTrace().addWarning("Accessor OK");
//Execute Query and get the values in resultset
resultSet = accessor.execute(" SELECT ID.NEXTVAL FROM DUAL");
//container.getTrace().addWarning("SELECT OK");
//String[] cols = resultSet.getMetaData().getColumnNames();
//for (int i=0; i<cols.length; i++){
// container.getTrace().addWarning("Column name: " + cols<i>);
for(Iterator rows = resultSet.getRows();rows.hasNext();){
//container.getTrace().addWarning("Result has rows");
Map rowMap = (Map)rows.next();
//container.getTrace().addWarning("Trying to get NEXTVAL");
//Object obj = rowMap.get("NEXTVAL");
//container.getTrace().addWarning("Data received " + obj);
//return obj.toString();
return rowMap.get("NEXTVAL").toString();
//return ((String)rowMap.get("NEXTVAL"));
//container.getTrace().addWarning("Result has no rows");
throw new RuntimeException("Cannot obtain next service repair ID");
//return "-1";
} catch(Exception ex){
container.getTrace().addWarning("Exception " + ex.getMessage());
throw new RuntimeException("Cannot obtain next service repair ID", ex);
//return "-1";
finally {
try {
if (accessor!=null) accessor.close();
catch(Exception e){
container.getTrace().addWarning("Cannot close DataBaseAccessor for service " + businessSystem +
" and comm channel " + communicationChannel + " in getNextID user defined funcion");
now my requirement is i have my to call the same value of ID feild into ID of I.to represent perticular I is related to so and so Header(H).
Please suggest me how i can call the value to which is passing to ID(targetfeild) of H and map to ID(targetfeild) of I.
please provide me UDF code....
thanks in advance,
Naveen.Use standard function UseOneAsMany (found under NodeFunctions) to populate the Header-value for each of the corresponding Item-segments.
Input 1 - your header-fields as resulted from DB-lookup
Input 2 - Item-segment
Input 3 - Item-segment
Make sure to set the context for Input 1 so that there are equal number of contexts in Input 1 as 2 & 3.
-Kenneth -
Mapping of field with MinOccurs 0 in SAP XI 2.0 SP5
Hi,
Our Scenario is
File -> Adapter -> XI -> Idoc Adapter -> SAP
We are trying to push IDoc and the mapping tool is giving an error. I am providing the error that I am getting.
The snippet of the XSD for the IDoc is given below:
<xsd:element name="E1FIKPF" minOccurs="1" maxOccurs="1" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:annotation>
<xsd:documentation>FI Document Header (BKPF)</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="BUKRS" minOccurs="0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:annotation>
<xsd:documentation>Name of global company code</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="6" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="BELNR" minOccurs="0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:annotation>
<xsd:documentation>Accounting Document Number</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="10" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="GJAHR" minOccurs="0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:annotation>
<xsd:documentation>Fiscal Year</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:pattern value="\d+" />
<xsd:maxLength value="4" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="BLART" minOccurs="0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:annotation>
<xsd:documentation>Document type</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="2" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="BLDAT" minOccurs="0" type="date" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:annotation>
<xsd:documentation>Document Date in Document</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="BUDAT" minOccurs="0" type="date" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:annotation>
<xsd:documentation>Posting Date in the Document</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="MONAT" minOccurs="0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:annotation>
<xsd:documentation>Fiscal Period</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:pattern value="\d+" />
<xsd:maxLength value="2" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
In this snippet as can be seen the minOccurs for the BUKRS field is 0. But if I do not map the field its giving me following error.
/usr/java131/bin/javac -encoding UTF8 -classpath .:./system-lib/boot.jar:./system-lib/jaas.jar -extdirs ./additional-lib:./services/deploy/work/applications/ExchangeRepository -d /tmp/9_53_35_27_7_2004 /tmp/9_53_35_27_7_2004/com/sap/xi/tf/_MsgMapGcentre2Fidcc2_.java
/tmp/9_53_35_27_7_2004/com/sap/xi/tf/_MsgMapGcentre2Fidcc2_.java:303: ';' expected
a117.gotoNextContext();tmpValAtr = a117.getValue();if (!tmpValAtr.equals(SUPPRESS)) handler.addAttribute("SEGMENT", tmpValAtr);a117.gotoNextValue();if (!__deflt)a115.gotoNextValue();No mapping for value/FIDCCP02/IDOC/E1FIKPF/BUKRS
^
/tmp/9_53_35_27_7_2004/com/sap/xi/tf/_MsgMapGcentre2Fidcc2_.java:303: cannot resolve symbol
symbol : class No
location: class com.sap.xi.tf._MsgMapGcentre2Fidcc2_
a117.gotoNextContext();tmpValAtr = a117.getValue();if (!tmpValAtr.equals(SUPPRESS)) handler.addAttribute("SEGMENT", tmpValAtr);a117.gotoNextValue();if (!__deflt)a115.gotoNextValue();No mapping for value/FIDCCP02/IDOC/E1FIKPF/BUKRS
^
2 errors
Compilation error
Any one having any guesses on why this error is coming. I know this error would vanish if we map the field by an Empty Constant. But then it would start giving error for the next field until all the non mandatory fields are mapped.
If however I go ahead and map all the fields then the output structure generates all the segments the maxOccurs times. i.e. if a segment is occuring 999 times then that segment is repeated that many time in the output whereas I never needed that segment in the output.
Can any one suggest as to why this is happening. Am I doing some thing wrong or this is a problem with Mapping Editor in XI 2.0 SP5.
AshishHello Ashish,
this is a bug in the mapping tool. You have to apply the note 730081. It says:
Symptom
After you import XI20 Support Package 04 or Support Package 05, you can
no longer change and regenerate the message mapping (graphic mapping
tools).
The following error is displayed during activation or generation: No
Mapping for value.......
Other terms
Graphic mapping tools, SAPINTSER05, no mapping vor value
Reason and Prerequisites
This problem is caused by a translation error.
Solution
The translation error has been corrected.
As of patch level 1, the correction is provided in the SAPINTSER05_1.sca
archive of the INTEGRATION Services 2.0 software component and, as of
patch level 2 for Support Package 5, it is provided in the
SAPINTBUI05_2.sca archive of the INTEGRATION BUILDER 2.0 software
component. The archives are available on the SAP Service Marketplace at:
http://service.sap.com/patches
SAP EXCHANGEINFRASTRUCTURE/SAP EXCHANGEINFRASTRUCTURE 2.0
Binary Patches/INTEGRATION SERVICES 2.0/OSINDEP and
..... /INTEGRATION BUILDER 2.0/OSINDEP
Import the archives using SDM.
The mapping must be recompiled after deployment.
Regards Franz -
I am trying to map the fields in R3 system with the infoobjects in BW.
I am mapping the fields with in R3 with the infoobjects in BW.
Can any please let me know the relavent mapping infoobjects and the procedure to find for the following fields.
Description Type Length
Purchase Order VARCHAR2 10
PO Line Number NUMBER 10
Line Item Description VARCHAR2 60
Order Quantity
Unit of Measure VARCHAR2 3
Performance Start Date DATE 7
Performance End Date DATE 7
Order Date DATE 7
PO Line Extended Amount NUMBER 14
PO Line Total Amount NUMBER 14
Project VARCHAR2 30
Account ID VARCHAR2 15
Cost Amount NUMBER 14
Prime Contract ID VARCHAR2 20
Requisition ID VARCHAR2 10
Vendor ID VARCHAR2 12
Vendor Name VARCHAR2 25
Entry Date/Time DATE 7
Address Descriptive Code VARCHAR2 10
Address Line 1 VARCHAR2 40
City Name VARCHAR2 25
Mail State VARCHAR2 15
Postal Code VARCHAR2 10
Country Code VARCHAR2 8
Phone Number VARCHAR2 25
Fax Number ID VARCHAR2 25
Other Phone Number ID VARCHAR2 25Hi,
You can find the fields and related infoobject for the datasource as follows
Step1
log on to the BW system
Step2
Go to SE11 ---> give the table name as RSOSFIELDMAP and execute
Step3
give the data source name for OLTPSOURCE field and execute
Step4
you will find the mapping between fields and relevent infoobjects
Hope this helps
Santosh -
How to map journal fields and whats is the better process type
/Journal/JournalSuspenseCostCentre NULL
/Journal/JournalBalancingCentre Lookup from Organisation ID
/Journal/JournalMultiCompany u2018Nu2019
/Journal/JournalBatchNumber NULL
/Journal/JournalNumTransactions Total number of /Journal/JournalLine transactions
/Journal/JournalBaseDRTotal Sum of /Journal/JournalLine/JournalLineBaseValue u2013 Debit Values only
/Journal/JournalBaseCRTotal Sum of /Journal/JournalLine/JournalLineBaseValue u2013 Credit Values only
How to map journal fields and whats is the better process type idoc/proxies?please let me know
Journal Line
Multiple journal lines per header:
Schema Element Data
/Journal/JournalLine/JournalLineCostCentre Bank account control Cost Centre
/Journal/JournalLine/JournalLineAccount Bank account control Account Code
/Journal/JournalLine/JournalLineMoneyTotal Transaction Line Amount
/Journal/JournalLine/JournalLineVolume NULL
/Journal/JournalLine/JournalLineDescription Payee Name
/Journal/JournalLine/JournalLineChequeBookReference NULL
/Journal/JournalLine/JournalLineMatchField Cheque Number
NB Contra accounting entries should be posted to:
Schema Element Data
/Journal/JournalLine/JournalLineCostCentre Bank account control Cost Centre
/Journal/JournalLine/JournalLineAccount Bank account control Account Code
/Journal/JournalLine/JournalLineMoneyTotal Transaction Line Amount * -1
/Journal/JournalLine/JournalLineDescription Payee Name
/Journal/JournalLine/JournalLineMatchField Cheque Number
/Journal/JournalPeriod Current General Ledger Period
/Journal/JournalYear Current General Ledger YearIt looks you are new to PI,
you have to develop scenario end to end, by creating source data type and target data type(if you have XSD's not required),then use Graphical mapping (message mapping) to map source and target structures.
Search in sdn for one end to end scenario you will understand easily
Regards,
Raj -
Hai All,
Is there any option to add header fields dynamically in the HTTp adapter header fields?
I am doing a file to HTTp scenario.In this i have to pick a file using file adapter and add some header values(header values are both static and dynamic)and using HTTP adapter place it at a target URL.Is it possible to avoid mapping since there is only picking up of file and adding some headers to it.I can see header fields in the HTTP reseiver adapter.Can i use these to add the static and dynamiuc header fields.specifically i have two questions.
1)I want to include the source file name which is DYNAMIC as a field in the header fields in the target payload.How can this be achieved?Should i go for mapping and write a UDF for the same or is there any option to add dynamic values in the HTTP receiver adapter header fields?
2)what are these header fields for?
Can somebody explain it to me.I have gone through the Blogs like http receiver adapter configuration etc..would be of great help if anybody could explain it to me in detail.Thanks for the replies but my question is still un answered.please guide me on how to proceed?
I am going to send a txt file.On top of the contents of the file i want these headers to be attached
In the header fields of HTTP receiver adapter configuration can i give the following format?
Header Value
AS2 from: hgdfdjfhd
AS2 to: fhdfjdfdfnd
subject: hdsjdhsdsd
will it appear in the target file as
AS2 from: hgdfdjfhd
AS2 to: fhdfjdfdfnd
subject: hdsjdhsdsd
//file content starts here
dsgdsjfgdsfggf
hfdjhfdhfdjfdfhhdsfh
hgdsjfgdsjfgdfdgfdg
gfdsahdgsdfdgfgdsg
what is to be done for acheiving this kind of target file?
"If you choose to use HTTP Header fields then you can enter Field1 to Field 6 values. This will be embeded into the HTTP request as HeaderFieldOne and so on."
can this HeaderFieldOne to HeaderFieldsix be populated with any valueslike
AS2 from: ggdhfsdf and all?
please help me out. -
Hi,
Can anyone please explain meaning of "Header fields in HTTP adapter" ? It has "Name" and "Value" fields in the receiver HTTP channel.
If I enter values like:
Name Value
Source XYZ
Destination ABC
Where will these appear in outbound HTTP post ?
Also, is this different from "HTTP Header Fields" checkbox available in "Adapter specific message attributes" section ?
Thanks
Bhaven> Also, is this different from "HTTP Header Fields" checkbox available in "Adapter specific message attributes" section ?
You use this, when you want to have dynamic header fields. You put here a key, but instead of a value you put a parameter name, which can be filled with a value during mapping runtime.
Regards
Stefan -
How to send a signed SOAP message with additional HTTP Header fields
Our Partner's integration requirements are that we send them asynchronous SOAP messages, that are digitally signed, and whose HTTP headers contains 5 or 6 additional header fields, of which 3 or 4 will need to be dynamically set during the message mapping. I believe we can use the HTTP adapter for adding new fields to the HTTP header, but don't believe it supports signing. I believe that the SOAP adapter supports signing, but I'm not clear on how to use it to add fields to the HTTP header. What is the most straight-forward way to achieve both the signing of the message and the addition of the HTTP header values?
Thanks,
Kurt>>>What is the most straight-forward way to achieve both the signing of the message and the addition of the HTTP header values?
Use Java mapping for both.
1) Signing the message
You can digitally sign the soap message using many standard api like WSS4j? or refer Java XML signature API which comes in Jdk1.6.
Refer these links
WSS4J - http://ws.apache.org/wss4j/axis.html
Java XML signature : http://java.sun.com/developer/technicalArticles/xml/dig_signature_api/
2) >>whose HTTP headers contains 5 or 6 additional header fields, of which 3 or 4 will need to be dynamically set during the message mapping
Use Dynamic configuration API to set the additional header fields during message mapping. -
How to display header fields names in the next page in report6i
how to display repeat header field names into the next page in report6i urgent plz......
When i am runing report in 1st page only the header information is displaying in 2 page the header info is not displaying only records are displaying.So i want to display the header info in 2nd page also.
Plz help out.Hello,
Go to the report layout model and select those items/objects which are not getting display on next page and open the property pallet by pressing F4 key and set the property Print Object On to All Pages then it will display on all pages.
-Ammad -
How i use header fields in soap adapter
Hi Experts,
I need use header fields http in soap adapter receiver but i don't know where's the Variable Header
Do you know where i find this?
Somebody know how i put header fields http in soap adapter receiver?
Thanks for all,It is similar like in this blog:
/people/william.li/blog/2006/04/18/dynamic-configuration-of-some-communication-channel-parameters-using-message-mapping
Find in the online help the values for the SOAP adapter.
You can only add additional fields, you cannot influence the standard field like content-type and content-id.
Regards
Stefan -
Query Print Layout-Linking a new header field with ref to repetitive area
Hi,
In a query print layout, the query result based on pending items from a specific vendor is to be displayed.
On trying to insert a new database field (eg. Vendor Name), in the header area based on the pending item details in the repetitive area, the print output shows up a random vendor name (not related with the query result).
The RELATE TO property-option of the header field does not list the repetitive area fields, and the LINK TO option does not help either.
Please advise any other way to link the new db field to display the correct vendor name (contact person, address) as used in the query.
thanks,
Avinash
Edited by: Avinash Sashee on Jun 30, 2009 1:14 PMYes, the fields are part of the query.
Eg. The pending items from a specific vendor(with vendor code, name) is listed in the repetitive area of the layout. But the requirement is to have the Vendor Name and Address details in the Header portion(i.e. Letter to Vendor). Please help me on this.
thanks,
Avi.
Maybe you are looking for
-
Exception in message manager (CX_WD_ABORT_MESSAGE_MANAGER)
I have a Web Dynpro application with popup views (using the window manager) to create/change data. All works well in one view , when the method to create/change the data returns an error I relay it to the message manager and it is displayed on the s
-
Lightroom CC will not export photos
I installed Lr CC the night of April 21 (first day it was available) and have tried exporting several different photos, one at a time, without success; the pop-up message says "Some export operations were not performed. The file could not be written
-
TRIM() not found? Compile error: Can't find project or library in Excel 2007
I am preparing to make a few alterations to a spreadsheet that another person built. I have NOT made any changes to it yet. They put in a button that allows portions of the worksheet to print. I am now using Excel 2007. Their code ran fine in 2003
-
SQL Query not working for column names with spaces
Hi People.. We have a strange situation wherein, the column name in the database table has a space inbetween like "Constant Name". While we write a JDBC statement code with the select query we get an exception for invalid syntax. It will help us in a
-
Data Conversion and Derived Column issues
I have a strange issue occurring with one of my SSIS packages. What needs to happen: I have to read data from a table that stores a field in NCHAR(40) Send it through a Data Cleansing SSIS Component that forcefully outputs the data at a cleansed sta