Message Mapping - NewLine generation in the target field
Hi ,
This is a File to SOAP scenario, where text file is picked by XI and posted to target using webservice in the xml format.In the message mapping, I am supposed perform a logic where 3 fields in the source structured are to be concatenated and sent to the target structure. This fields at the target structure are to be displayed with a newline character.
So if I am sending : abc, 123 and xyz as input and the output should be in one field as follows :
<ns3:OutputField xmlns:ns3=abc
123
xyz</ns3:StreetAddressLine>
I have used this "
" as the seperator in the concat function, hoping this would produce a new line but was hopeless.
Any ideas are appreicated.
Thanks,
Rag
Hi Raghav,
XML will never show new line or space characters.
Try to open the message in notepad or wordpad and then check if you can see the new line character.
-Supriya.
Similar Messages
-
LSMW - The source field is longer than the target field in MEK2
Hi,
I tried to create a simple LSMW script to end date condition records using MEK2 transaction.
I provide Condition type, Plant, Material, Start Date and default Valid from and Valid to dates.
When the program is generated, it defines just 1 character for Start date and when I try to map the date field from source, it gives following error message.
Attention: The source field is longer than the target field.
Message no. /SAPDMC/LSMW_OBJ_040013.
Not sure why it is happening. I am on 46C.
Please let me know if anybody come across such situation. I have checked all aspects, tried recreating in different systems but ended up with the same problem.
You help in this regard will be highly appreciated.
Regards
KasiIt is a standard error, and I have not found any OSS note to fix it. In order to solve it, you can use this workaround:
- Export the recording into a txt file
- Edit the file, and modify the information correspondent to domain, data element and lengths (internal and external) fields, and save it
- Import the recording
For example, I had problems in a recording with the field SEL_DATE of the transaction VB02. Then, I changed these values:
Values before changes:
/SAPDMC/LSGBDC ZTEST ZVB02_ZA01 0018 0000 SEL_DATE DATE_ON Valid on CHAR1 CHAR1 SEL_DATE 0000000000 000001000001000001CHARC
Values after changes:
/SAPDMC/LSGBDC ZTEST ZVB02_ZA01 0018 0000 SEL_DATE DATE_ON Valid on DATUM DATAM SEL_DATE 0000000000 000010000010000010CHARC
(values 01 has been replaced by values 10)
The values changed correspond to fields:
/SAPDMC/LSGBDC-PARDOMAIN
/SAPDMC/LSGBDC-PARDATAELEMENT
/SAPDMC/LSGBDC-LENG
/SAPDMC/LSGBDC-INTLEN
/SAPDMC/LSGBDC-OUTPUTLEN
The information that you have changed should be updated in table /SAPDMC/LSGBDC, where all the information of the recordings is stored. Check this information has been updated after recording import.
I hope this solution be useful for anyone...
Regards. -
Displaying an error message with a link to the error field
By default, ADF validation usually displays an alert with an error message and a link to the error field.
I have some custom validations where I finally display the error message with this:
public static void MessageError(String messageText){
//String messageText="No se han encontrado estos datos";
FacesMessage fm = new FacesMessage(messageText);
* set the type of the message.
* Valid types: error, fatal,info,warning
fm.setSeverity(FacesMessage.SEVERITY_ERROR);
FacesContext context = FacesContext.getCurrentInstance();
context.addMessage(null, fm);
My customer is asking for displaying a link to the error field in this kind of error alerts as standard errors do.
Is there any way to get this ?Can't you include this in your message?
You may want to check Duncan's blog https://blogs.oracle.com/groundside/entry/get_more_from_your_messages whichgives more inside on what you can do
Timo -
Constant values to the target field
Hi friends,
how to assign three constant values to the target field in XI..?
like :
constant--->Trget field.
There is one target field but 3 constant values have to be assigned....
is it thr FixValue fuction..?
Regards
SamHi,
Goto MM Editor
Conversion --> FixValues
Double Click
Fill in the "Key" "Value" pair as per u r requirment
Key Value
A R1
B R2
C R3
So from Source structure A comes it gets R1 in target
hope this is helpful
Srini -
Runtime interface mapping selection based on the target message. SYNCHRNOUS
Hi,
X system sends the data to SAP PI through SOAP. SAP PI determines the target operation after performing the RFC look in ECC whether to create/change/update master data in ECC. So SAP PI has to execute different mapping program bsed on the response from RFC lookup. This can be achieved through Enhanced Receiver Determination. My question is here the X system needs the final response...i.e SYNCHRONOUS interface. How can we implement this requirement ?
Thanks in advance,Hi Mythree,
>>Can we handle the response (synchronous interface) using enhanced interface determination.
No.. But if you choose to use Enhanced Receiver Determination then your scenario might work!!! (Hoping that you are in PI7.1 or I7.0 SPS23. Check this link http://help.sap.com/saphelp_nw04/helpdata/en/43/a5f2066340332de10000000a11466f/frameset.htm)
If you have doubt in creating the Enhanced RD then check this wiki page http://wiki.sdn.sap.com/wiki/display/XI/EnhancedReceiverDeterminationinSAP+XI
Now once the Receivers are identified in Runtime, you can use a normal (sync to sync interface ) interface determination and get back the response.
Regards
Suraj -
Message mapping: Passing data at the node level
Hi,
I have a question/requirement, XI Message Mapping program need to read the incoming xml and map to a diffrerent target structure. Incoming xml has a parent node called Description and it has a value "Frauen Hemd Shoes", we need to map this value to target LongText Field but message mapping is ignoring this data while mapping.
A parent node can't hold the value/data while a child node is present. So is there any workaround to read this data to target str?
<Description>
<ShortName>Shoes</ShortName>
Frauen Hemd Shoes
</Description>
Expected result:
<Comments>
<ShortText>Shoes</ShortText>
<LongText>Frauen Hemd Shoes</LongText>
</Comments>
Please let me any clues to resolve the issue.
thanks,
LaxmanI agree , the soruce structure is not a valid one..
The source structure should look like the below:
<Description ShortName='Shoes'>
Frauen Hemd Shoes
</Description>
where ShortName is attribute for the Element "Description".
You add attribute to the element the same way you add subElement, Just choose attribute instead of subelement.
In this case the Mapping would be
Descriprion -
> LongText (target)
ShortName -
> ShortText (target)
This Should work.
Regards.
Jeet. -
Reg Mapping error cant produce the target element
Hi gurus,
I have a mapping requirement like
sourceinput
||
record
||
Tab_id
materialno
condition type
coustomergroup
materialpricinggroup
datefrom
dateto
uom
amount
in target side
target input
||
record----
(0-1
||
coustomergroup(1--unbound) if tab_id is R34
||
Tab_ID
coustomergroup
UOM
Materialno
Materialpricinggroup(1--unbound) if the tab_id R346
||
tab_id
materialpricinggroup
datefrom
dateto
based on the tab_id i need to create target node i.e if the tab_id is R345 then the fields which are under the node coustomer group
will be populated
if the tab_id is R346 then material pricing group node will populated
i have tried like
tab_id----
| equalS--creatif--
coustomergroup
|
constant(R345)----
this mapping excute successfully if the occurence of the target node coustomergroup is 0---unbound
if is 1----unbound the target gives error mapping exception
my target structure is WSDL there giving as minoccurs=0 but while it is imported to xi it will come as 1---unbound
please help out this
let me know if anything is needed
Edited by: katakoti on May 4, 2011 2:40 PM
Edited by: katakoti on May 4, 2011 2:47 PM</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="PRICING_MASTER_DATA">
<xsd:sequence>
<xsd:element name="CUSTOMER_GRP" nillable="true" type="tns:ArrayOfCUSTOMER_GRP" minOccurs="0" />
<xsd:element name="SALES_ORG" nillable="true" type="tns:ArrayOfSALES_ORG" minOccurs="0" />
<xsd:element name="PRI_GRP" nillable="true" type="tns:ArrayOfPRI_GRP" minOccurs="0" />
<xsd:element name="MT_PRI_GRP" nillable="true" type="tns:ArrayOfMT_PRI_GRP" minOccurs="0" />
<xsd:element name="DIST_CHN" nillable="true" type="tns:ArrayOfDIST_CHN" minOccurs="0" />
<xsd:element name="INDUSTRIAL_CODE" nillable="true" type="tns:ArrayOfINDUSTRIAL_CODE" minOccurs="0" />
<xsd:element name="PRICING_TEMPLATES" nillable="true" type="tns:PRICING_TEMPLATES" minOccurs="0" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="CUSTOMER_GRP">
<xsd:sequence>
<xsd:element name="TABLE_ID" nillable="true" type="xsd:string" minOccurs="0" />
<xsd:element name="CUSTOMER_GROUP_NAME" nillable="true" type="xsd:string" minOccurs="0" />
<xsd:element name="CONDITION_DETAILS" nillable="true" type="tns:CONDITION_DETAILS" minOccurs="0" />
<xsd:element name="PRICING_DETAILS" nillable="true" type="tns:PRICING_DETAILS" minOccurs="0" />
<xsd:element name="BUSINESS_DETAILS" nillable="true" type="tns:BUSINESS_DETAILS" minOccurs="0" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="CONDITION_DETAILS">
<xsd:sequence>
<xsd:element name="CONDITION_TYPE_x0020_" nillable="true" type="xsd:string" minOccurs="0" />
<xsd:element name="VALID_DATE_FROM_x0020_" nillable="true" type="xsd:string" minOccurs="0" />
<xsd:element name="VALID_DATE_TO_x0020_" nillable="true" type="xsd:string" minOccurs="0" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="PRICING_DETAILS">
<xsd:sequence>
<xsd:element name="AMOUNT" nillable="true" type="xsd:string" minOccurs="0" />
<xsd:element name="RATE_UNIT" nillable="true" type="xsd:string" minOccurs="0" />
<xsd:element name="CONDITION_PRICING_UNIT" nillable="true" type="xsd:string" minOccurs="0" />
from source side i wiil get the tab_id based on that id. i need to populate the target node
tab_id-=100 then coustomer_group
tab_id = 200 then sal_org
i got the source values like this
tab_id coustomer_group sal_grp pri_grp condition_type date_from date_to amount rate_unit
100 c c1 05/05/2011 06/05/2011 A R
200 s c2 05/05/2011 06/05/2011 A1 R1
300 p c3 05/05/2001 06/05/2011 A3 R3
based on the tab_id i need to send the data to perticular node
for this requirement i had follow the
tab_id--
-----------------------equalS-----------------creatif--------array of coustomer_group
constant(100)
its work fine when the arrayof coustomer_group is 0--unbound (i tried by creating the same target strucuture manually)
it fails when the ocuurence is 1---unbound -
Cannot produce the target fields as per Queue
Hi
I have given a condition such that 8 nodes are generated after mapping
now inside node, one of the field is not getting populated . The queue is shown below :
SUPPRESS
one
Two
Three
Four
SUPPRESS
SUPPRESS
Five
Six
Seven
SUPPRESS
Eight
SUPPRESS
Queue after using RemoveContexts -. Split by value:
-ContextChange-
one
-ContextChange-
Two
-ContextChange-
Three
-ContextChange-
Four
-ContextChange-
Five
-ContextChange-
Six
-ContextChange-
Seven
-ContextChange-
Eight
-ContextChange-
When I click on Display Queue on the target I see the above Queue with eight values
But in real,
One
Two
Three
are appearing in the target
the rest, the field itself is not seen in the output
What could be the problem?
regards,
Nikhil.Hi,
I am picking up 3 fields from 3 diff segments and concatinating all
E1EDKA1 (1....1)
+BELNR ( Occur only once )
E1EDP01 ( 0...unbounded)
+POSEX
+ZSEGMENT (0...unbounded )
++LINE_NO
++QTY
I have to Concatenate LINE_NO + POSEX + BELNR where QTY > 0 from ZSEGMENT.
My Mapping :
if QTY (contxt set to E1EDP01) >0 then ->
[LINE_NO(contxt set to E1EDP01) ( concat ) POSEX ]
Output from IF I am passing to a Concat and giving BELNR to it
I see Queues correctly. But in real i dont see the fields coming
If i change the QTY context to ZSEGMENT, its populate 2 more fields, but with wrong concatinations
Regards,
Nikhil. -
Mapping constant values to the target data source columns
Hi
A Target data source has only two columns(RPT_NAME, RPT_LEVEL) and both of them are constants and mapped as follows
WITH TEMP1 AS
(select 'AS' as A from dual
union
select 'IS' as A from dual
union
select 'ED' as A from dual
select t.A as RPT_NAME, 'INV' as RPT_LEVEL from TEMP1 t
Here there is no source tabel involved for mapping and gnerating a from query.
Kindly let me know hoto map this table.
ThanksHi Amit
Is there a way we can create an intermediary staging table or model or view in ODI itself, the business requirements are such that the source and the target databases cannot change/include any other view or table .
Thanks -
Hi,
Attached image shows the error message which i receive when I try to run my vi. "vi loaded with errors on the target and was closed"
The vi has no errors as far as I can see and hasn't changed since I ran it a few days ago and it functioned fine. other vi's in the project run without any issue.
Any guidance to find the issue would be greatly appreciated!
Thanks,
Conor
Attachments:
Labview error.JPG 43 KBSome tips:
1. Try to recompile the VI which is "loaded broken" (ctrl+click on Run arrow). Deploy.
2. Try to recompile this VI and its dependencies (ctrl+shift+click on Run arrow). Deploy.
3. Try to recompile top-level VI and its dependencies. Deploy.
4. Change something in "loaded broken" VI (add some code, like reversing array back and forth, just to make LV recompile it). Deploy.
5. Close the project. Restart RIO. Open project. Deploy.
6. Close LabVIEW. Restart computer. Restart RIO. Open project. Deploy.
7. Take another computer. Deploy from it.
8. Close project. Clear compiled object cache (menu Tools -> Advanced -> Clear compiled object cache...). Open project. Wait until LV will open/recompile it. Deploy.
9. Do as 7, but in the meantime reformat RIO from MAX. Open project. Deploy.
10. Contact NI Support. Send them your project. Make them Deploy it.
The fun starts when you have project which deploys for 30 minutes... Usually I skip straight to step 8 then, and usually it helps. -
How to pass Current System time in the target field?
Hi Experts
kindly help me in mapping a field in which I have to map current system time.
I think there is no standard function for time like the date so do i write a UDF for the same or any other way an in case a UDF than please help in that.
Thanks
AprajitaHi Mathur,
kindly help me in mapping a field in which I have to map current system time.
I think there is no standard function for time like the date so do i write a UDF for the same or any other way an in case a UDF than please help in that.
Mathur no need to write UDF for that..
Use standard function Current date-------> In that (Target Format) u have to specify the time i.e: HHmmss
Thats it..... Noe use this function as u like...
Satya Kumar -
Mapping a parameter to the form field (OIM 11g)
Hello, people!
How can I get an information from a created form field?
In more details: I have to assign a manual creating of a resource to a concrete group of users. So I made a form that contains a field named "Admin Group", made a process for this form that contains a manual task "manual create user", in assignment tab of this task I'm using a task assignment adapter. This adapter has one input parameter - Group name using what I want to find a group key. So the problem is in mapping this parameter. I expected to find my "Admin Group" field and map to it, but i didn't find that. How can I get information from this field?
Regards
Anton LitvinI think you have created Object Form. Are you seeing Object Data while mapping.
Create one process form. Populate Process Form Field using Data Flow under Process Definition.
While mapping you'll see Process data to map with your Admin Group.
Sorry don't know how they have handled in OIM 11g... Above is for 10g. -
Message Mapping : How to appned the ub occ under UB occ: Very urgent
Hi SDNers
My SOurce str is like this Traget Str
Node
subnode1 1..1 Tstr1 1..1
subnode2 1..1 TSr2 1..1
subnode3 1..ub Tstr3 1..ub
subnode4 1..1 Tstr4 1..1
subnode5 1..ub Tstr5 1..1
subnode6 1..ub Tstr6 1..ub
now the situstaion is
subnode4 1..1 Tstr4 1..1
subnode5 1..ub Tstr5 1..1
subnode6 1..ub -
Mapped -
Tstr6 1..ub
suppose
Subonde5 occures 2 times with 3 and 4 occurence of subnode6 then
i need to create 7 Line for Tstr6
for example
subnode4
subnode5
subnode6----
subnode6----
subnode6----
subnode4
subnode5
subnode6----
subnode6----
subnode6----
subnode6----
now i need create the 3+4 = 7 ocurence i mean i have to merge these all occurence and have to map Tstr6
Thax a lot in advance
Regards
KuldeepKuldeep,
The structure is lil bit confusing, I f you could populate some data and give us the source and target structure as u needed it will be more helpful.
Best regards,
raj. -
Message Mapping: Map value from the first element in a context in target el
Hi experts,
I have a problem with a message mapping in XI. I hope you can help me. At first I will give you a source and a target structure. Then I will explain the problem.
<u>Source structure:</u>
<E1EDP01>
<E1EDPT1>
<TDID> ... </TDID>
<E1EDPT2>
<TDLINE> ... </TDLINE>
</E1EDPT2>
</E1EDPT1>
</E1EDP01>
The structure can contain more than one E1EDP01-Elements, more than one E1EDPT1-Elements and more than one E1EDPT2-Elements.
<u>target structure:</u>
<LineItem>
<vendmemo> ... </vendmemo>
</LineItem>
For every E1EDP01-Element my mapping creates one LineItem-Element in the target structure. To fill the element <vendmemo> the mapping should do the following steps:
The mapping should search in E1EDP01 for a E1EDPT1 with the TDID = Z505. And from this E1EDPT1-Element (with the TDID=Z505) the mapping should take the value <TDLINE> from the first E1EDPT2-Element in the context of the E1EDPT1-Element (the E1EDPT1 with the TDID=Z505) and put this value in <vendmemo>.
The mapping should do this action for every E1EDP01 -> so for every LineItem.
I tried it with UDF but I didn't found a solution. Can anybody help me?
best regards
ChristopherHello experts,
i was wrong ... my mapping isn't still working. I had created a test instance. and only for this test instance the mapping (see above) works.
Can anybody help me? I'm trying the whole day but I can't find a solution. Here a second description of my problem:
<u>Source Structure:</u>
<E1EDP01>
<E1EDPT1>
<TDID> ... </TDID>
<E1EDPT2>
<TDLINE> ... </TDLINE>
</E1EDPT2>
<E1EDPT2>
<TDLINE> ... </TDLINE>
</E1EDPT2>
<E1EDPT2>
<TDLINE> ... </TDLINE>
</E1EDPT2>
</E1EDPT1>
</E1EDP01>
<E1EDP01>
<E1EDPT1>
<TDID> ... </TDID>
<E1EDPT2>
<TDLINE> ... </TDLINE>
</E1EDPT2>
<E1EDPT2>
<TDLINE> ... </TDLINE>
</E1EDPT2>
<E1EDPT2>
<TDLINE> ... </TDLINE>
</E1EDPT2>
</E1EDPT1>
</E1EDP01>
<u>Target Structure:</u>
<LineItem>
<vendmemo> ... </vendmemo>
</LineItem>
<LineItem>
<vendmemo> ... </vendmemo>
</LineItem>
<u>Description of my Problem:</u>
For each E1EDP01 in the source structure the mapping creates one LineItem in the target structure.
The element "vendmemo" should be created in any case ... also if it will be empty.
To fill the element "vendmemo" the mapping should search in E1EDP01 for a E1EDPT1 with the TDID=Z505. If there is an element E1EDPT1 with the TDID=Z505, the mapping should write the TDLINE from the first E1EDPT2 (under the element E1EDPT1 with the TDID=Z505) in the target field "vendmemo".
The Problem is that TDLINE an TDID are not in the same context. I tried it with setting the context of both to E1EDP01. But it was not working ... have you any idea oder suggestion?
Thank you very much
best regards
Christopher -
Does the message mapping editor insure that a valid target message is co
Hi Friends
Does the message mapping editor insure that a valid target message is constructed?
Regards
SamSamuel,
Message mapping editor ,will generate the output as per your logic. Hence you need to validate and check whether the target message has been created correctly.
If you say," I'm perfect with the logic, I created the mapping I checked the target strcuture, its perfect, always the data will be populated correctly?" If the above is your question, then the answer is YES.
raj.
Maybe you are looking for
-
Discoverer Plus not working in Internet Explorer
IE 6.0 on Windows 2000 professional SP4 and all of the patches up to date. Latest Java run time from Sun. I hit the link to Plus and it will eventually bring me back to the login screen with all of the parameters empty. It also opens a new window whi
-
Error while opening the document
Hi, i av created the document.while i m trying to oopen the document in tcode :CV02N it s giving me a message as "40.960 bytes transmitted , Code page 0000" Could me pls tel me what is this message and how to solve this.. Regards Bhanu
-
Servlet Methods - doGet, doPost
Hi, I understoot that GET request -> doGet(), POST request-> doPost() methods are overrids by the HttpServlets.... do we need to use both methods in the Servlets class..? For example, I am sending POST request into the Servlets class... so i can over
-
After effects multicore settings advice
Hi guys, I just got cs6 master collection working on my 64 bit machine. I remember when I installed cs4 on this machine I had to go into preferences in After Effects and enable multicore editing or such to take advantage of all my 16gb ram and i7 pro
-
Please help with above!