How to supress target side mandatory node
Hi Guys,
Can any throw some light on this plese, How to supress mandatory (1..Unbound) on Target side.
Great help to me!!
Regards
San
Neetesh Raj wrote:>
> San,
> >
> >
> > Refer Sarvesh's reply. In my previous reply, I had meant similar approach.
> >
> >
> > Regards,
> > NeeteshHi Guys,
Please have a look the both structures and give me your idea on this!!
Source
ROOT Complex Type
OUTPUT Element 0..unbounded
TRANS_HEADER Element 0..unbounded
SET_ID Element xsd:string 0..1
H01_XQ Element 0..unbounded
XQ01 Element xsd:string 0..1
XQ_Y2K_D Element xsd:date 0..1
Group_N1 Element 0..unbounded
H02_N1 Element 0..1
N101 Element xsd:string 0..1
Group_LIN Element 0..unbounded
D01_LIN Element 0..unbounded
LIN02 Element xsd:string 0..1
D01_PO4 Element 0..unbounded
P0401 Element xsd:integer 0..1
D01_N9 Element 0..unbounded
N901 Element xsd:string 0..1
Group_ZA Element 0..unbounded
D02_ZA Element 0..unbounded
ZA01 Element xsd:string 0..1
ZA_Y2K_D Element xsd:date 0..1
S01_CTT Element 0..unbounded
CTT01 Element xsd:integer 0..1
Target Structure:
p1:ProductActivityNotification Element
MessageHeader Element 1
ProductActivity Element 1
ValidityPeriod Element 0..1
SubcontractingIndicator Element 0..1
BuyerParty Element 0..1
VendorParty Element 0..1
ProductRecipientParty Element 0..1
InboundDeliveryReference Element 0..unbounded
Item Element 1..unbounded
Item Element 1..unbounded
PromotionSalesTimeSeries Element 0..1
Item Element 1..unbounded
ValidityPeriod Element 1
Quantity Element 1
If ZA01 = 'QS' we need to produce target node "PromotionSalesTimeSeries" else shouldn't.
Similar Messages
-
Step by step procedure on how to duplicate subtree on the target side
I have a requirement where i have two types 'A' and 'B'. On the target side i have 6 fields out of which 2 have to repeat for type 'A' and remaining 4 for type 'B'. I have to sort my records such that all type 'A' records come above and all type 'B' come below that.
I had written a UDF for that initially and even used sort by key. I got to know that i can duplicate subtree on the target side thus i can have one subtree for type 'A' and one for type 'B'.
If i get 10 records which can either 'A' or 'B' randomly arranged, how should i go with Duplicate Subtree for that. Please explain with a scenario.Hi Jaya,
You just right click your node which you want to duplicate then you can choose the option Duplicate subtree. Now you mapped with you source element A twice and simlarly you just duplicate another type for 4 times and map with source element B.
Your problem will be solved.
Best Regards,
vijay -
How to remove target node if source field value is empty SAP PI Mapping
Hello,
how to remove target node if source field value is empty in graphical Mapping.
Like if
MIddle name in source filed is empty, I would like to eliminate target field from out put XML.
Thank you
JohnHi Jhon,
If you want to remove all empty tags and you dont to complicate your message mapping, you can use a XSL, after the message mapping, to remove all the empty tags:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="*[not(@*|*|comment()|processing-instruction())
and normalize-space()='' ]"/>
</xsl:stylesheet>
Regards -
How to pass multiple records to target side using xquery
Hi Everybody,
I am using xquery transformation.
Input: Source payload contains 5 variables.
Target payload contains 5 variables.
I have input with payload with multiple instance like:
<Input>
<payload1>
<a>1<a>
<b>2<b>
<c>3<c>
<d>4<d>
<e>5<e>
</payload1>
<payload1>
<a>6<a>
<b>7<b>
<c>8<c>
<d>9<d>
<e>10<e>
</payload1>
</Input>
So my requirement is to pass above records into target side,
So I am using xquery Transformation.
I have written code as follows.
(:: pragma bea:global-element-parameter parameter="$tHRecAdv1" element="ns0:THRecAdv" location="../XMLSchemas/THRecAdv.xsd" ::)
(:: pragma bea:global-element-return element="ns1:ShipmentReceiptEBO" location="../../AIAReferenceModelProject/EnterpriseObjectLibrary/Core/EBO/ShipmentReceipt/V1/ShipmentReceiptEBO.xsd" ::)
declare namespace ns2 = "http://xmlns.oracle.com/EnterpriseObjects/Core/Custom/EBO/ShipmentReceipt/V1";
declare namespace ns1 = "http://xmlns.oracle.com/EnterpriseObjects/Core/EBO/ShipmentReceipt/V1";
declare namespace ns4 = "http://xmlns.oracle.com/EnterpriseObjects/Core/Common/V2";
declare namespace ns3 = "http://xmlns.oracle.com/EnterpriseObjects/Core/Custom/Common/V2";
declare namespace ns0 = "http://diversey.com/THRecAdv";
declare namespace xf = "http://tempuri.org/ShipmentReceiptServicesProject/XMLTransformations/THRecAdvFile_ShipmentReceiptEBO_JDE_XQuery/";
declare function xf:THRecAdvFile_ShipmentReceiptEBO_JDE_XQuery($tHRecAdv1 as element(ns0:THRecAdv))
as element(ns1:ShipmentReceiptEBO) {
for $THRecAdvFields in $tHRecAdv1/ns0:THRecAdvFields
return
<ns1:ShipmentReceiptEBO>
<ns4:Identification>
<ns4:BusinessComponentID>{ data($THRecAdvFields/ns0:JD_WHSE_Code) }</ns4:BusinessComponentID>
<ns4:ID schemeID = "{ (data($THRecAdvFields/ns0:JD_PO_Number)) }"
schemeVersionID = "{ data($THRecAdvFields/ns0:JD_PO_Type) }">{ data($THRecAdvFields/ns0:WMS_InternalPONumber) }</ns4:ID>
<ns4:ApplicationObjectKey>
<ns4:ID>{ data($THRecAdvFields/ns0:JD_BranchPlant) }</ns4:ID>
</ns4:ApplicationObjectKey>
<ns4:Revision>
<ns4:Reason>{ data($THRecAdvFields/ns0:ReturnReceiptReasonCode) }</ns4:Reason>
</ns4:Revision>
</ns4:Identification>
<ns1:ExpectedReceiptDate>{ data($THRecAdvFields/ns0:WMS_ReceiptDate) }</ns1:ExpectedReceiptDate>
<ns4:InvoiceReference>
<ns4:InvoiceIdentification>
<ns4:ID>{ data($THRecAdvFields/ns0:JDE_SupplierInvoiceNumber) }</ns4:ID>
</ns4:InvoiceIdentification>
</ns4:InvoiceReference>
<ns1:ShipmentReceiptLine actionCode = "{ data($THRecAdvFields/ns0:ActionFlag) }">
<ns4:Identification>
<ns4:ID schemeID = "{ data($THRecAdvFields/ns0:JD_PO_LineNumber) }"
schemeVersionID = "{ data($THRecAdvFields/ns0:ExternPONumber) }">{ data($THRecAdvFields/ns0:WMS_ReceiptNumber) }</ns4:ID>
<ns4:ContextID>{ data($THRecAdvFields/ns0:WMSReceivingClerk) }</ns4:ContextID>
<ns4:ApplicationObjectKey>
<ns4:ID schemeID = "{ data($THRecAdvFields/ns0:BatchNumber) }"
schemeVersionID = "{ data($THRecAdvFields/ns0:BatchLineNumber) }">{ data($THRecAdvFields/ns0:JD_LocationCode) }</ns4:ID>
</ns4:ApplicationObjectKey>
<ns4:AlternateObjectKey>
<ns4:ID>{ data($THRecAdvFields/ns0:SupplierCode) }</ns4:ID>
<ns4:ContextID>{ data($THRecAdvFields/ns0:LineNumber_Or_SequenceNumber) }</ns4:ContextID>
</ns4:AlternateObjectKey>
<ns4:Revision>
<ns4:Label>{ data($THRecAdvFields/ns0:Records) }</ns4:Label>
</ns4:Revision>
</ns4:Identification>
<ns1:ReceivedQuantity unitCode = "{ data($THRecAdvFields/ns0:ReceiptUOM) }">{ data($THRecAdvFields/ns0:UnitReceipt) }</ns1:ReceivedQuantity>
<ns1:SourceDocumentTypeCode>{ data($THRecAdvFields/ns0:SKU_Code) }</ns1:SourceDocumentTypeCode>
<ns1:DestinationTypeCode>{ data($THRecAdvFields/ns0:DestinationProcessFlag) }</ns1:DestinationTypeCode>
<ns1:Comment>{ data($THRecAdvFields/ns0:Remarks) }</ns1:Comment>
<ns4:Status>
<ns4:Code>{ data($THRecAdvFields/ns0:ProcessSourceFlag) }</ns4:Code>
<ns4:EffectiveDateTime>{ data($THRecAdvFields/ns0:ADDDATE) }</ns4:EffectiveDateTime>
</ns4:Status>
<ns1:ShipmentReceiptTransaction>
<ns1:ShipmentReceiptTransactionLot>
<ns1:ShipmentReceiptItemLotReference>
<ns1:ExpirationDate>{ data($THRecAdvFields/ns0:ExpiryDate) }</ns1:ExpirationDate>
<ns1:CreationDateTime>{ data($THRecAdvFields/ns0:ProductionDate) }</ns1:CreationDateTime>
</ns1:ShipmentReceiptItemLotReference>
</ns1:ShipmentReceiptTransactionLot>
</ns1:ShipmentReceiptTransaction>
</ns1:ShipmentReceiptLine>
</ns1:ShipmentReceiptEBO>
declare variable $tHRecAdv1 as element(ns0:THRecAdv) external;
xf:THRecAdvFile_ShipmentReceiptEBO_JDE_XQuery($tHRecAdv1)
But while importing this code to OSB,and tested it ,
With 1 payload it successfully shows the data in Target side,
But while testing with multiple line items,i am getting an error as follows.
*Error executing the XQuery transformation: line 14, column 17: {err}FORG0005: expected exactly one item, got 2+ items*
So please provide me the steps how to pass multiple records to target side using xquery.
Regards,
Jyoti NayakHi Jyoti Nayak,
You have to do something like the example bellow, you can not just repeat the inner element, you will need an outer "container" tag. So you will have to change the target element of your xq transformation.
declare function xf:setToList($set1 as element(ns0:set))
as element(ns0:list) {
<ns0:list>
for $pair in $set1/ns0:pair
return
<ns0:entry>
<ns0:key>{ data($pair/ns0:key) }</ns0:key>
<ns0:value>{ data($pair/ns0:value) }</ns0:value>
</ns0:entry>
</ns0:list>
Cheers,
Vlad
Give points - it is good etiquette to reward an answerer points (5 - helpful; 10 - correct) for their post if they answer your question. If you think this is helpful, please consider giving points -
FCC's parameters for multiple occurence on target side
Hi Experts,
I have an issue in Fixed File content conversion(FCC).
The fixed format file is being read into XI and is being converted in XML via FCC.
I have changed the occurence of MT on target side,which resulted in adding Messages & Message1 tag on sender side as well.The structure has become like this:
Messages
-> Message1
--> FCI0002_MT
---> row
> Fields
Target str:
Messages
->Message1
-->FCI002_MT
--->row
>Fields
If I use FCI0002_MT in document name and row,* in Recordset structure then message mapping fails at MT node.
What should be the Document name and Recordset structure in the FCC adapter?
Thanks and Regards,
Indu Khurana
Edited by: Indu Khurana on Feb 6, 2009 9:29 AM
Edited by: Indu Khurana on Feb 6, 2009 9:34 AMHi Mugdha,
Yes Its has passed FCC and stuck in mapping.
But now if I change Recordset structure to :
Message1,1,FCI000012_Forecast_DATA2000_MT,1,row,*
then its gving error in communication channel : " Mandatory parameter 'xml.keyfieldName': no value found ".
And in my case I don't have any key field name.
Kindly suggest.
Thanks
Indu -
Message Mapping on the Target side
Hi
I am working on Proxy to SOAP in PI 7.1, and have node which is defined on the target side as Unbounded (table)
Here is the structure of the table that has been defined on the target side,
CodeList - 0- Unbounded (Table)
Id XSD Id
CodeList Name String
CodeList Version String
CodeListOwnerCd String
Source System(ECC) is not sending any values and the values which needs to be assigned to the above structure are fixed on the target side,
how can I assign multiple values to the Code List table
Ex CodelistName Should contain ClaimsPartyRoleCdList, PolicyTypeCdLis , PaymentTypeCdList
Please let me know how can I assign Multiple values to the target side table
Thanks
PRHey
You can easily do this via advanced UDF.
Map the root node to the below UDF.Make sure that you have set the Cache as Queue for this.There will be no input values to this UDF
//write your code here
result.addValue(" ");
result.addValue(" ");
Map the underlying Nodes to the below UDF.Make sure that you have set the Cache as Context for this.There will be no input values to this UDF
//write your code here
result.addValue("3");
result.addContextChange();
result.addValue("4");
result.addContextChange();
I was able to acheieve the below XML by using the above two
<?xml version="1.0" encoding="UTF-8"?>
<ns0:MI_Multiple xmlns:ns0="http://fxp.com">
<Record>
<First>3</First>
<Second>3</Second>
</Record>
<Record>
<First>4</First>
<Second>4</Second>
</Record>
</ns0:MI_Multiple>
Hope this works for you.
Thanks
Aamir -
Counting the number of detail records at target side...
Hi
I have a requirement where i need to caluclate the number of detail records formed and add it in trailer section...both at target side...
The output will look like this :
<Detail>
<Field></Field>
</Detail>
<Detail>
<Field></Field>
</Detail>
<Detail>
<Field></Field>
</Detail>
<Trailer>
<Count> 3 </Count>
</Trailer>
Basically, In trailer the Count field will contain the number of Detail records.
Can this be achived by a UDF?? Please help!!!Actually teh detail node formation at target depends on a lot of nodes of source side...using Count I have already done it but due to lot of nodes @ source side it becomes kind of a mesh...
Hence I was trying to figure out a way in which if I can count the number of detail nodes at target side I can remove the present mapping...
Corect me if I am wrong but can't we declare this target detail node as global variable and then use 'Count' function to capture its occurence???
P.S : In XI 3.0 we used to have a tab to declare global variables but here in 7.1 we have Functions tab...could anybody tell me how to declare the variable in 7.1? -
How to create one more server node for SAP J2EE server?
Hi,
Can any one please suggest how to create one more server node for SAP J2EE server? I am using WAS700.
Thanks and Regards,
Smriti.Hai,
Login into the Configtool(C:\usr\sap\SID\DVEBMGS<inst no>\j2ee\configtool) if ABAP+JAVA stack or C:\usr\sap\SID\JC<inst no>\j2ee\configtool) if JAVA stack
click on the instance and and select the addserver button on the top to create a servernode for J2EE server.
Thanks and Regards, -
How can i target a movie of which i set the name based on a variable?
Hi.
I have the attached code:
And i want to target the imgHolder
; that i have just created through the while function. I mean I
attach a movieclip from the library to which I give a name composed
from "imgHolder"+i where i is the number of the node from the xml.
After that i want to succesfully target the newly created
movieclip and get it's _x so i can attach the next movieclip next
to the previous one. After that i will have a set of function based
on the "imgHolder"+i movieclip.
But i need to know how to succesfully target the movieclip.
Thanks a lot.use the attach code option to display code in this forum.
otherwise, your code is altered and difficult to read. -
Pick a particular file and keep on target side with the same file name
Hi Guys,
I have got couple of files in a folder. I need to pick only two files, I have setup BPM procedure 2 payloads merge. To keep these merged file with the same source filename.
Source side file Directory
abc_12345_20100408101029.xml (abc_seq number_timestamp.xml)
xxx12345.xml
test.xml
abc_12345_20100408101149.xml
Target Side, How do I keep with the same file name?
abc_12345_20100408111239.xml --- same file name with diffrent timestamp.
One more question: How to setup a file adapter to trigger between 2:00am to 5:00 am? in a particular time
Does anybody has got quick idea, any links etc.,
Your quick and positive response will be much appreciates.
Kind Regards
SanHi,
One more question: How to setup a file adapter to trigger between 2:00am to 5:00 am? in a particular time
For this you can Availability time planning (i.e you can schedule the file adapter to poll for the files with in the time interval i.e 2 -5)...
for generating the file name at target side you need to look for the Dynamic Configuration as you need to change the timestamp for the file..and i am not sure how this works in BPM..
in normal scenarios dynamic configuration will help....
HTH
Rajesh -
How to include the not assigned nodes in Hierarchy structure
Hi Experts,
I am running a report which has got Hierarchy variable type. After execution of the query some of the nodes appear always under "not assigned".
Please let me know is it possible to include these not assigned node under hierarchy structure.If so how to do that?
Regards
KumarHi Subbiah.
You can also supress the "not assigned" nodes in the hierarchy maintanence by choosing: Hierarchy attributes -> Supress unassigned nodes.
Hope it helps.
BR
Stefan -
How to migrate DB from single node 10gR2 to RAC 11gR2 on diff platform?
How to migrate DB from single node 10gR2 to RAC 11gR2 on different platform with possible minimum downtime? We have a situation of upgrade/migrate oracle 10gR2 single instance DB to 2-node RAC 11gR. The source OS is Solaris 10 on SPARC and the target OS is Linux (the target servers could be changed to Solaris 11 x86 if needed). What is the best solution on that?
Thanks,Technically, can do the following for upgrading and migration?
1. Create 11gR2 oracle home on the same server and upgrade the database from 10gR2 to 11gR2 by running conversion (2 hour down time?)
2. Set up Heterogeneous Primary and Physical Standbys by RMAN. The standby is the RAC with ASM. No need down time. (from Solaris Space to Linux - this may be a problem)
3. At the cutoff time, activate the standby DB from the RAC ASM.
If feasible, do we have some detail guild line for each step? -
How to supress LDB selection screen
Hi All
I am using selection screen in report and LDB too.
Can anyone tell how to supress default selction screen of LDB?
Thanx
KamalHi kamal,
1. Just do not declare any structure / table
/ node
as defined in the ldb.
2. then the default selection screen won't come.
3. U can just code your own selection screen,
it will come by default.
regards,
amit m. -
How to make characteristic as Mandatory
Dear All,
In Batch Management, for a class, how to make particular characteristics as a "Required Entry".
In class, I can see "Required Entry" check box, but it is greyed out. How to make it as Mandatory.
Because, we have maintained "LOBM_HSDAT" characteristic for a class.
But while doing MIGO and MB1C, it is not asking to Manufacturing date.
Please let me know how to make it as mandatory field in a Class.
Regards,
MullairajaNot sure this would help you but you can try,
In t.code CT04, enter the characteristic LOBM_HSDAT and click on change button. Go to basic data tab. Check the box required entry, which you can find on the right hand side and then save. Test again. You must also test in t.code MSC1N apart from MIGO.
MullaiRaja, I must take a step back. The above solution proposed will not hold good for MIGO. To force the user to enter the manufacturing date/expiry date, then in material master ->Plant data/Stor.1 view, maintain the settings for min.shelf life, total shelf life and Period indicator for SLED. If these data are maintained, then when the user does MIGO and if there is no batch master already maintained, then the system will force the user to enter the manufacturing or expiry date.
Regards,
Edited by: Shiva Ram on Jan 5, 2011 11:27 AM -
How system determine target cost ?
Dear experts,
we use moving average price control for in-house production parts, when we finish one production order, I can not see any target cost from cost analysis.
Can you tell me how system determine target cost ? for moving average price control , is that mandatory for variance calculation ?
BR , ShubinHi
Target cost is calculated based on released Standard cost estimate
What you are doing is wrong.. Follow S for In House Made items and release standard cost estimate before GR
Maintain Target Cost Version 0 in IMG for variance Calculation
br, Ajay M
Maybe you are looking for
-
Can't get ePrint to work on 3050a
Hi, I just bought a 3050a, mainly because of the ePrint capability. I have spent all day trying to get it working and it will be going back to the store unless it starts working. I am using Windows XP and I have succeeded in installing the printer a
-
When i try to do the payment allocation for a supplier through AP-Payments, LOV does'nt show the debit and credit balances avaliable for a particular supplier. Instead, it throws and error saying "FRM 40502: Oracle error: Unable to read list of value
-
How to delete the index of a deleted account
So here's the deal. I deleted an old Gmail account ( I think it was set up as imap) a few months ago. Last night I'm searching Mail and I find all of these hits, but the mailbox column is blank, I cannot read the message, and I cannot select "Show in
-
Someone sends me a PDF form when I fill it out and email it back to them they receive it blank-why?
-
Restrict the number of visible values in drop down by key?
Hello, Is it possible to restrict the max. number of entries displayed in a drop down by key element? By default i get 10 entries which i would like to limit to 5. Thanks. Regards, Vasu