One mapping program for three diferent enviroments
Hello there,
I have developed a scenario in which an rfc requests a web service trough XI. In the process a BPM is involved together with some XSLT mappings.
R3->XI->WebService
The Web service request message looks like follows:
<?xml version="1.0" encoding="UTF-8"?>
<cem:Z_ORDER_SEARCH xmlns:cem="http://XXXXXXXX/yyyyyyyyyyyy">
<messageStructure/>
</cem:Z_ORDER_SEARCH>
Where "http://XXXXXXXX/yyyyyyyyyyyy" Is the web service destination.
Everything works fine, but as I have to manage three different environments for Development, Quality and Production I need three different versions of the XSL mapping since destinations are not the same for Dev, Qlty and Production environments.
I found out that I can get information of the sender using runtime parameters as follows:
<xsl:param name="SenderSystem">
I would like to evaluate this information to determine the target URL destination.
If the sender is the development sender then the URL target is the development destination and so on.
I tried the following code:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:cemDev="http://developmentDestination"
xmlns:cemQlty="http://qualityDestination"
xmlns:cemPrd="http://productionDestination"
xmlns:cem=""
<xsl:namespace-alias stylesheet-prefix="cem" result-prefix="cemDev"/>
<xsl:template match="/">
<cem:mappingProgram/>
</xsl:template>
</xsl:stylesheet>
This works all right, but I cannot insert code to evaluate the destination.
On the other hand, this code is not valid:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:cemDev="http://developmentDestination"
xmlns:cemQlty="http://qualityDestination"
xmlns:cemPrd="http://productionDestination"
xmlns:cem="">
<xsl:param name="SenderSystem"/>
<xsl:choose>
<xsl:when test="string($SenderSystem) = 'PRODUCTION'">
<xsl:namespace-alias stylesheet-prefix="cem" result-prefix="cemPrd"/>
</xsl:when>
<xsl:when test="string($SenderSystem) = 'QUALITY'">
<xsl:namespace-alias stylesheet-prefix="cem" result-prefix="cemQlty"/>
</xsl:when>
<xsl:otherwise>
<xsl:namespace-alias stylesheet-prefix="cem" result-prefix="cemDev"/>
</xsl:otherwise>
</xsl:choose>
<xsl:template match="/">
<cem:mappingProgram/>
</xsl:template>
</xsl:stylesheet>
Neither this one:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:cemDev="http://developmentDestination"
xmlns:cemQlty="http://qualityDestination"
xmlns:cemPrd="http://productionDestination"
xmlns:cem="">
<xsl:param name="SenderSystem"/>
<xsl:template match="/">
<xsl:choose>
<xsl:when test="string($SenderSystem) = 'PRODUCTION'">
<xsl:namespace-alias stylesheet-prefix="cem" result-prefix="cemPrd"/>
</xsl:when>
<xsl:when test="string($SenderSystem) = 'QUALITY'">
<xsl:namespace-alias stylesheet-prefix="cem" result-prefix="cemQlty"/>
</xsl:when>
<xsl:otherwise>
<xsl:namespace-alias stylesheet-prefix="cem" result-prefix="cemDev"/>
</xsl:otherwise>
</xsl:choose>
<cem:mappingProgram/>
</xsl:template>
</xsl:stylesheet>
I tried this other code, which is obviously not valid:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:param name="SenderSystem"/>
<xsl:choose>
<xsl:when test="string($SenderSystem) = 'PRODUCTION'">
<cem:Z_ORDER_SEARCH xmlns:cem="http://productionDestination">
</xsl:when>
<xsl:when test="string($SenderSystem) = 'QUALITY'">
<cem:Z_ORDER_SEARCH xmlns:cem="http://qualityDestination">
</xsl:when>
<xsl:otherwise>
<cem:Z_ORDER_SEARCH xmlns:cem="http://developmentDestination">
</xsl:otherwise>
</xsl:choose>
<cem:mappingProgram/>
</cem:Z_ORDER_SEARCH>
</xsl:template>
</xsl:stylesheet>
So the only way I found to make it works is like this:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:param name="SenderSystem"/>
<xsl:choose>
<xsl:when test="string($SenderSystem) = 'PRODUCTION'">
<cem:Z_ORDER_SEARCH xmlns:cem="http://productionDestination">
<cem:mappingProgram/>
</cem:Z_ORDER_SEARCH>
</xsl:when>
<xsl:when test="string($SenderSystem) = 'QUALITY'">
<cem:Z_ORDER_SEARCH xmlns:cem="http://qualityDestination">
<cem:mappingProgram/>
</cem:Z_ORDER_SEARCH>
</xsl:when>
<xsl:otherwise>
<cem:Z_ORDER_SEARCH xmlns:cem="http://developmentDestination">
<cem:mappingProgram/>
</cem:Z_ORDER_SEARCH>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
Unfortunately this doesnt solve my problem, because I need to reproduce the mapping program three times in the document.
Any ideas, or suggestions how to manage one mapping program for the three different environments?
Thanks a lot in advance, Raú
Hi there,
I just found one way of getting this done. It may not be the better waw, but I post it in case it is helpfull.
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<!-- Sender System at runtime-->
<xsl:param name="senderSystem"/>
<!-- SenderSystem constants (development addressed by default)-->
<xsl:variable name="qualitySenderSystem" select="'WHATEVERTHENAMEOFTHEQUALITYSENDERSYSTEM'"/>
<xsl:variable name="productionSenderSystem" select="'WHATEVERTHENAMEOFTHEPRODUCTIONSENDERSYSTEM'"/>
<!-- Mapping program template to be called-->
<xsl:template name="mappingProgram" match="/">
<!-- MAPPING PROGRAM-->
<UNIQUE_MAPPING_PROGRAM/>
<!-- END OF MAPPING PROGRAM-->
</xsl:template>
<!Receiver determination depending on senderSystem>
<xsl:template match="/">
<xsl:choose>
<xsl:when test="$senderSystem=$productionSenderSystem">
<xxx:Z_ORDER_SEARCH xmlns:xxx="http://production">
<xsl:call-template name="mappingProgram"/>
</xxx:Z_ORDER_SEARCH>
</xsl:when>
<xsl:when test="$senderSystem=$qualitySenderSystem">
<xxx:Z_ORDER_SEARCH xmlns:xxx="http://quality">
<xsl:call-template name="mappingProgram"/>
</xxx:Z_ORDER_SEARCH>
</xsl:when>
<xsl:otherwise>
<xxx:Z_ORDER_SEARCH xmlns:xxx="http://development">
<xsl:call-template name="mappingProgram"/>
</xxx:Z_ORDER_SEARCH>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
Similar Messages
-
Hi All
I am trying to upgrade my n95 Map program and i have downloaded thre new MAP rom upgrade but it is comming with error to upgrade. I have the new firmware 12. and old looking screen map program. can you please help to upgrade it and if there is a patch to do it could someone tell me where it is and how to get it. I did use the use the download (NOKIA_MAPS_1_0_S60_UPDATE) back in 9th AUG 2007 and updated in my N95 but it is steel with the old looking map I meen by ther is not SATALITE BAR and KB download when is on GPS mode like the new look map program.Please help.
Regards
JOSEPHKHNo one knows what will be included or when it will be released.
The best place to visit for news about new firmware first is www.symbian-freak.com -
Creation of one outbound interface for two diferent senders
helo.
i just want to conform ont thing that .
my scenario is two diferent files from 2 diferent business systems are sending to one Rfc.
so i was created only one outbound interface for both senders and one message type bcos the file structure is same for both senders.
so is there any thing wrong in creating only one datatype,message type,message interface for both senders.
waiting for your response.
cheers.
seeta ram.Hi Ram,
That is perfectly correct when you have two senders and one receiver Scenario and <b>Business Service is different</b>. Then you can use the same Interface.
Just keep in mind that the key for XI to recognise the Right interface is combination of these 3 parameters:
Sender Service, Sender Interface and Namespace. These cannot be duplicated.
When the Message type is same in the sender input data then you can create just one Message Type and One Data type and RFC is anyhow the imported RFC which you need not have to worry.
In Configuration Scenario you need to configure separately the RD, ID, CC and Agreements for the Interfaces.
Hope this answers your query. Let us know if you need anymore clarification
Thanks
Srini -
How to find out back end mapping program for Idoc ?
HI Experts,
Iam new to ALE IIDOCS .. i have a issue in existing idoc .
Some data maping problem is there in the existing idocs
I need to find out back end program for this perticular idoc no .
Exactly where they have written the maping code .
How to find out this ?
is there any preceedure to trace the back end program based on the idoc number .
Regards
RameshGHi Ramesh,
If you are looking at Inbound que then we generally double click on idoc go to control datat info and then take partner data info there
Goto we20 check teh system and there double click the message type and there in inbound option double clik the porcess code it gives you one FM where you can see logic written to process that IDOC
Regards,
Poornima -
More than one print program for one sap script
Hi Experts,
I have more than one print program which is attached to one sap script. There is standard text used in the script which has variable as date, i want that date to be converted into the previous date but only for one specific print program. For rest of the print program it should behave as it is.
I have tried it using ( s_date - 1 ) formula and it is working fine. But the variable s_date is used in other parts of the program which is affecting rest of the functionality when i am using above said formula. I can't use other variable in standard text as it is used by other programs.
Please guide me to resolve this, thanks in advance.Well, I'm not sure if I understand the scenario 100%, but I think what you have is a standard text (that you cannot change) referring to variable &S_DATE&. You want this to display the previous day's date when the form is used by one print program but not when it's called by another.
Also, you don't want to change S_DATE to S_DATE - 1 for the whole printout, because apart from the text display, S_DATE is used elsewhere and you want to keep the date as S_DATE, not the previous day.
I assume that you can change the coding of the form.
If all of the above is correct, then you could change the value for S_DATE in the form to the previous day just before it calls the standard text and change it back after the output of the text is done. So right befor the INCLUDE for the standard text, you could use an IF statement in the form logic, query the value of SY-REPID (or SY-CPROG). You'll have to test which one shows the print program name. Depending on that, you can do S_DATE = S_DATE - 1 and after the INCLUDE, do the same thing and change it back to S_DATE = S_DATE + 1.
But honestly, this is a pretty shady programming technique... I mean, hard coding references to the print program name in the form logic is certainly not a very clean method -
Looking for a Maps program for Cloud for Customer
Hello,
I'm looking for a maps program like Microsoft Bing Maps for SAP ByDesign that is compatible with Cloud for Customer. In the process of finding this forum, I can see Cloud for Customer and Business by Design are related but are these program compatible?
Is there any documentation confirming these programs are compatible? A how to for matching them up?
Is there an alternative that I could use with Cloud for Customer to achieve the same thing?
Thanks,
Gabriel"SAP has updated to HTML5 interface and now has Google Map integration and that we now have it enabled."
It looks like this has worked out, thanks everyone. -
Different mapping programs for same source and target
Hi All,
I have to map the incoming idoc to xml messages.
But based on customer numbers in incoming idoc i have to use different mapping programs and map to same xml messages.
1 source message - n mapping programs - 1 target message
(based on cust numbers)
I dont want to harcode the customer numbers to find out the mapping programs.
Can anyone guide me in this on how to achieve this functionality...
thanks
GiridharHi,
have you tried to use Conditions in the Interface Determination?
You can add multiple lines in the 'Configured Inbound Interfaces' and attach different mappings to each of them by picking a condition (basically using an XPath Expression).
Check this Help Document,
the section 'Multiple Identical Inbound Interfaces with Conditions' describes what I believe is your scenario.<a href="http://help.sap.com/saphelp_nw04s/helpdata/en/42/ea20e737f33ee9e10000000a1553f7/frameset.htm">Multiple Identical Inbound Interfaces with Conditions</a>
regards,
Peter -
dear gurus
yesterday i faced a problem with material stock valuation with ref. to that i got on replay ple check map program
ple tell me about that
tahnk u
prakashHi,
If we are to be able to help we need more information, please cut and paste the exact text of the message you received and which transaction was being used.
Steve B -
Hai,
is it possible to use different Mapping programs in one process? For example I use Idoctype ACC_GL_POSTING01 to book some values from 3rd party into R3.
So now I have to make a different mapping in according to the booking code coming from 3rd party.
So what you guys think is the best way to solute this?
Because I don't want to make large If-statements in one mapping program - if their is any better way!
THX Matt
Message was edited by: Matthias BoettgerHi Matthias,
sure:)
you can insert a switch step
(which will take into consideration the bookig code)
and on the basis of this create branches with different interface mappings (so different mapping programs)
but you have to do it in BPM (integration process)
Regards,
michal
Message was edited by: Michal Krawczyk -
How can connect different ejb server in one client program
hi , every
i want to make connect ejb server into one client program.
for that , but i try to change PROVIDER_URL property , it's not correct
who solve this problem for novice? :(You need to create separate initialContext to each of the different servers
and lookup up the different ejbs.
-Sabha
"inking" <[email protected]> wrote in message
news:[email protected]..
hi , every
i want to make connect ejb server into one client program.
for that , but i try to change PROVIDER_URL property , it's not correct
who solve this problem for novice? :( -
Hi all,
I am seaching for Driver program for FORM16 SMART FORM .There is one driver program for sap script , for smart form J_1IEWT_CERT IS there any driver program .
Can any one please guide me how to proceed?
thanks in advance.
Regards,
suresh.Hi, i recently solved the j1incert issue.
Can i know whether are you trying to change to the new tds format for form 16 (new format on 2010)?
If so please let me know. i can guide you.
[Click here|https://websmp130.sap-ag.de/sap(bD1lbiZjPTAwMQ==)/bc/bsp/spn/sapnotes/index2.htm?numm=1522189] for new
(note you need to have market place login) tds certificate format (2010)
oss note: 1522189
earlier the form used to be in script but now changed into smartform.
For the driver program of form 16 in se38 please enter report name as J_1IEWT_CERT . and click on display
Regards,
koolspy. -
Single concurrent program for multiple operating units
HI
I am working on XML/BI publisher to generate AR invoice reports.
We have single rdf report using which rtf templates are generated.
There are 10 operating units (10 ORG_ID's) and 10 rtf templates, one for each operating unit. There are 4 different responsibilities for each ORG_ID
Eg: ORG_ID's = 11, 12, 13, 14..........etc
Eg: Responsibility = xx, yy, zz...........etc
I want to register a single concurrent program. When a user submits a request from "XX" responsibility, then the template associated with that org_id should be generated. Whichever responsibility the user is accessing from, that particular template must be shown as output.
How can i register one concurrent program for multiple operating units.
Thanks!
Edited by: 994628 on Mar 18, 2013 4:39 PM
Edited by: 994628 on Mar 18, 2013 4:42 PM>
There are 10 operating units (10 ORG_ID's) and 10 rtf templates, one for each operating unit. There are 4 different responsibilities for each ORG_ID
Eg: ORG_ID's = 11, 12, 13, 14..........etc
Eg: Responsibility = xx, yy, zz...........etc
I want to register a single concurrent program. When a user submits a request from "XX" responsibility, then the template associated with that org_id should be generated. Whichever responsibility the user is accessing from, that particular template must be shown as output.
>
interesting case for 10 OE set 10 template
what is purpose? for each OE different requirements for layout?
BTW
if each Responsibility associated with one org_id then
- you can get current org_id when you run concurrent program
- create main template (will be #11) with condition like
<?choose:?>
<?when: ORG_ID=11?>
<?import:xdo://FND.XX11_SUB.en.00/?>
<?call:TEMPLATE11?>
<?end when?>
<?when: ORG_ID=12?>
<?import:xdo://FND.XX12_SUB.en.00/?>
<?call:TEMPLATE12?>
<?end when?>
<?otherwise:?>
<?import:xdo://FND.XX21_SUB.en.00/?>
<?call:TEMPLATE21?>
<?end otherwise?>
<?end choose?>so based on org_id will be import of needed subtemplate
- re-register your "10 rtf templates" as subtemplates
another way is substitution of template for concurrent then it running
in before_report trigger set needed template
l_conc_request_id := fnd_global.conc_request_id;
if ORG_ID = 11 then
UPDATE fnd_conc_pp_actions t
SET t.argument2 = 'XX11'
where t.concurrent_request_id = l_conc_request_id
and t.action_type = 6;
if ORG_ID = 21 then
UPDATE fnd_conc_pp_actions t
SET t.argument2 = 'XX21'
where t.concurrent_request_id = l_conc_request_id
and t.action_type = 6; -
ABAP Program for Processchain..
I have one processchain that is running my manually.
if processchain running means need a output like processchain running.if processchain not running/completed
i need a output like process completed.so finaly i need to develop abap program for my processchain.any one write program for my processchain?Hi,
REPORT ZPROCESSCHAINLOG.
TABLES rspclogchain.
DATA: gt_rspclogchain LIKE rspclogchain OCCURS 0,
wa_rspclogchain LIKE rspclogchain.
DATA: gt_log LIKE rspc_s_msg OCCURS 0,
wa_log LIKE rspc_s_msg,
log type c.
SELECT * FROM rspclogchain
INTO CORRESPONDING FIELDS OF TABLE gt_rspclogchain
WHERE datum eq sy-datum
AND chain_id = YOUR PROCESSCHAINID.
IF sy-subrc = 0.
SORT gt_rspclogchain BY datum DESCENDING
zeit DESCENDING.
READ TABLE gt_rspclogchain
INTO wa_rspclogchain INDEX 1.
CALL FUNCTION 'RSPC_API_CHAIN_GET_LOG'
EXPORTING
i_chain = wa_rspclogchain-chain_id
i_logid = wa_rspclogchain-log_id
TABLES
e_t_log = gt_log.
IF sy-subrc = 0.
LOOP AT gt_log INTO wa_log.
if wa_log-msgv4 = 'Successfully completed'.
log = 1 .
endif.
ENDLOOP.
if log = 1.
WRITE: / 'Processchain completed'.
ELSE.
WRITE :/ 'processchain is running'.
endif.
ELSEIF sy-subrc <> 0.
WRITE :/ 'Not scheduled'.
endif.
endif.
Best Regards,
Thangesh -
Maps program does not work. In standard it only shows a grid. If I ask for a route it shows start and end point and three route boxes but nothing else. It does show directions. If I switch to hybrid it shows to routes but no roads. Background is a blur.
Do you have a question? This is a user to user help forum. Apple is not here only other users like yourself. You don't report problems to Apple here.
By the way, it might help if you indicated where you are located.
To complain to Apple use http://www.apple.com/feedback/ipad.html -
XI 3.0: Additional libraries for mapping program
Hello,
I got the scenario that the program within my Interface Mapping is making use of additional custom java resources (jar's).
I know that in XI 2.0 I had to put these additional libraries into the directory:
..\j2ee\cluster\server\additional-lib
and register them in the files:
..\j2ee\cluster\server\managers\library.txt and
..\j2ee\cluster\server\managers\reference.txt
Now in XI 3.0 I don't have these folders and files anymore. Therefore I simply imported the jar files into the repository...But I do neiter know wether that is the right way at all for registering additional libs in XI 3.0 nor I don't know if I have to import them into the same software component or namespace then the mapping program.
Does anybody know how to make use of additional libraries within a XI 3.0 Stack 5 landscape? I would very much appreciate any recommendations on that!
Kind regards,
Sven LattermannHi Advait,
From the below what I understand is that you are not able to do value mapping for the follwoing
1 A
2 A
3 B
As value mapping allow one to one mapping only. Please do it like as mentioned below
1 1*A
2 2*A
3 3*B
Then in the graphical mapping of Integration Repository do the mapping for the same as shown below
source field > VALUEMAPPING> UDF--> TARGET Field
In UDF suppress the value of 1* , 2* , 3* which can be done as follows
create one UDF with one input field
//write the code as below to suppress the field
return input.substring(2);
Here the davantage of using 1* , 2* , 3* etc is that you have the option to use value mapping for 100 values which I think is not normally the case for any Interface.
If you have same source you can do the same thing for that.
Hope this helps you to resolve your query.
Thanks & Regards
Prabhat
Maybe you are looking for
-
How to block certain users to print S1 billing document type documents
Hello, I need to block some user so that they can not print the S1 reversed billing documents. How can I do this? Thank you. H
-
How to add a drop-down menu to a rollover image?
Hi, I guess my title says it all... I was wondering how to add a drop-down menu to a rollover image? I know that there's the sprymenu, but I need to have my own rollover images. Thanks, Kazem
-
I have this master detail report with summary of details. When I let Report to make default layout it creates 3 group frames. First one is for header labels of columns (M_G_ORD_ITEM_HDR) Second one is repeating frame for Items (R_G_ORD_ITEM) And thir
-
Serve data driven docs - how to question
I'm sure this is very basic for most, but this is my first go at this... I'm only asking to be pointed in the right direction, not looking for excessive hand holding. I have created a table in MySQL for documents I wish to serve up (PDFs, MS word,
-
Handbrake won't let me select my itunes videos for conversion
i'm opening handbrake and browsing for my videos but when i select one for conversion handbrake tells me that it's not a valid title and won't let me open it, what should i do?