XI Mapping - understanding contexts
Hello,
I have a PO idoc that I am trying to map from R/3 to a proxy in SUS (Supplier Self Services). I need to allow each line item to have a "ship from location" address.
The Idoc structure looks like this: ZORDERS1.IDOC.E1EDP01.Z1EDPA1.PARVW = "ZS",
E1EDP01 is repeated for each line item. If PARVW within Z1EDPA1 = "ZS" then there is a "ship from location" assigned.
My test PO has 3 line items and line items 1 and 3 have "Ship From locations" assigned. When I map the ship from locations the first line item has the ship from location data, the second shows "Ship From Location" but it shows no data, the third line item doesn't even show the text "Ship From Location".
I believe this has to be a context issue but I don't understand how it should be set up.
Any ideas?
Thanks,
Matt
IDOC structure (simplified):
<ZORDERS1>
<MANDT>050</MANDT>
<DOCNUM>0000000057208371</DOCNUM>
<E1EDK01>
<CURCY>USD</CURCY>
<WKURS>1.00000</WKURS>
</E1EDK01>
<E1EDP01>
<POSEX>00001</POSEX>
<ACTION>001</ACTION>
<PSTYP>0</PSTYP>
<MENGE>50.000</MENGE>
<MENEE>PC</MENEE>
<Z1EDPA1>
<PARVW>ZS</PARVW>
<LIFNR>0004000073</LIFNR>
<NAME1>ZEICHMAN MANUFACTURING INC.</NAME1>
<STRAS>5985 CLAY AVENUE SW</STRAS>
<ORT01>Grand Rapids</ORT01>
<PSTLZ>49548</PSTLZ>
<LAND1>US</LAND1>
<REGIO>MI</REGIO>
</Z1EDPA1>
</E1EDP01>
<E1EDP01>
<POSEX>00002</POSEX>
<ACTION>001</ACTION>
<PSTYP>0</PSTYP>
<MENGE>40.000</MENGE>
<MENEE>PC</MENEE>
<Z1EDPA1></Z1EDPA1>
</E1EDP01>
<E1EDP01>
<POSEX>00003</POSEX>
<ACTION>001</ACTION>
<PSTYP>0</PSTYP>
<MENGE>90.000</MENGE>
<MENEE>PC</MENEE>
<Z1EDPA1>
<PARVW>ZS</PARVW>
<LIFNR>0004000073</LIFNR>
<NAME1>ZEICHMAN MANUFACTURING INC.</NAME1>
<STRAS>5985 CLAY AVENUE SW</STRAS>
<ORT01>Grand Rapids</ORT01>
<PSTLZ>49548</PSTLZ>
<LAND1>US</LAND1>
<REGIO>MI</REGIO>
</Z1EDPA1>
</E1EDP01>
</ZORDERS1>
XML Structure for SUS (simplified):
<PurchaseOrderRequest>
<PurchaseOrder>
<documentnumber></documentnumber>
<item>
<ShipFromLocation>
<name></name>
<street></street>
<city></city>
<state></state>
<zip></zip>
</ShipfromLocation>
</item>
</PurchaseOrder>
</PurchaseOrderRequest>
Does that help?
Thanks,
Matt
Similar Messages
-
SAP XI - Mapping with Contexts
Hi Guys,
We have a problem when mapping with contexts. Couldyou please help.
What we are trying to achieve is if PARVW = X then map name2 to name2. We have done this all the way down the DT_Address. The context on both input values are set to IDOC.
The problem is that when all the fields are in a particular segment occurence then it maps perfectly. But on numerous occurrences of E1EDKA1 various fields are missing i.e.name2 or pstl2 etc. What we want to happen is if the field doesnt exist in that particular occurrence then just leave blank and dont map. What is happening instead is XI keeps looking for this field and maps the first occurrence it can find of it. So we end up with like 6 occurrences of the same thing.
Is their a way to specify that only map the fields if it is within the same occurrence as the qualifier. So basically Name2 follows PARVW to the same occurrence.
Also is their a way of making it so we dont get
Name
Name
Name
Id
Id
Id
Address
Address
Address
And instead get
Name
Id
Address
Name
Id
Address
Name
Id
Address
Thanks peopleHi Thanks for your input.
It was a little to do with the context but in the end I had to put another element in the target structure. So it went
Customer 0-unbounded
customerAddress 1-1
Details 0-1
ETC 0-1
ETC 0-1
I mapped the customer to E1EDKA1
I mapped customer address to a constant
and the details I ampped as before but with no context.
This seemed to work.... I have no idea why but it did work. If anybody could explain the why, I would appreciate it. -
Trying to understand context indexes and contains-help
Hi
i am using
Achieving functionality of many preferences using one context index
to understand context indexes and contains
and i get the following
Error starting at line 1 in command:
begin
ctx_ddl.create_preference ('nd_mcds', 'multi_column_datastore');
ctx_ddl.set_attribute ('nd_mcds', 'columns', 'text nd, text text');
ctx_ddl.create_section_group ('nd_sg', 'basic_section_group');
ctx_ddl.add_ndata_section ('nd_sg', 'nd', 'nd');
ctx_ddl.create_preference ('test_lex', 'basic_lexer');
ctx_ddl.set_attribute ('test_lex', 'whitespace', '/\|-_+');
end;
Error report:
ORA-06550: line 5, column 15:
PLS-00302: component 'ADD_NDATA_SECTION' must be declared
ORA-06550: line 5, column 7:
PL/SQL: Statement ignored
06550. 00000 - "line %s, column %s:\n%s"
*Cause: Usually a PL/SQL compilation error.
*Action:
so i am using the following to check for the error
http://docs.oracle.com/cd/E18283_01/text.112/e16593/cddlpkg.htm#BABCBFCB
plus
oracle text application developer's guide
plus
oracle text reference
but these have not listed that error (i have even googled this in vain)
background::we were actually using catsearch but because of its downsides i want to implement this
Is Achieving functionality of many preferences using one context index a good place to start when one does not know about
context and contains??
please post any other useful link for contains and context index that even explains
1) fuzzy
2) stem
3) synonym
4) near
5) soundex
6)ndata
7)lexer
thanks in advanceNdata is new to Oracle 11g. Your other posts indicate that you are using Oracle 10g, so you don't have ndata, so you get an error when you try to use it. If you want to use the 11g features that enable context indexes with contains to do all of the things that ctxcat indexes with catsearch do, then you need to upgrade to 11g.
The online documentation is searchable. Most things regarding Oracle Text are contained in either the Oracle Text Reference or the Oracle Text Application Developer's guide.
I suggest that you start with something very simple, then build from there.
The following is similar to your other post that used catsearch:
SCOTT@orcl_11gR2> CREATE TABLE mv_cat_seg_reg_prod
2 (cat_ids VARCHAR2 ( 7),
3 act_status VARCHAR2 (10),
4 name VARCHAR2 ( 1),
5 email VARCHAR2 ( 1),
6 address1 VARCHAR2 ( 1),
7 address2 VARCHAR2 ( 1),
8 contact_name VARCHAR2 ( 1),
9 mobile VARCHAR2 ( 1),
10 telephone VARCHAR2 ( 1))
11 /
Table created.
SCOTT@orcl_11gR2> INSERT ALL
2 INTO mv_cat_seg_reg_prod VALUES
3 ('1', 'Y', 'A', 'B', 'C', 'D', 'E', 'F', 'G')
4 INTO mv_cat_seg_reg_prod VALUES
5 ('2', 'N', 'H', 'I', 'J', 'K', 'L', 'M', 'N')
6 SELECT * FROM DUAL
7 /
2 rows created.
SCOTT@orcl_11gR2> CREATE INDEX mv_cat_seg_reg_prod_idx
2 ON mv_cat_seg_reg_prod (cat_ids)
3 INDEXTYPE IS CTXSYS.CONTEXT
4 /
Index created.
SCOTT@orcl_11gR2> SELECT token_text FROM dr$mv_cat_seg_reg_prod_idx$i
2 /
TOKEN_TEXT
1
2
2 rows selected.
SCOTT@orcl_11gR2> SELECT *
2 FROM (SELECT SCORE (1), name, email, address1, address2, contact_name, mobile, telephone
3 FROM mv_cat_seg_reg_prod
4 WHERE CONTAINS (cat_ids, '1', 1) > 0
5 AND act_status = 'Y'
6 ORDER BY DBMS_RANDOM.VALUE)
7 WHERE ROWNUM < 8
8 /
SCORE(1) N E A A C M T
4 A B C D E F G
1 row selected. -
Hi i am not being able to perform this mapping, the scenario is like this:
i need to create one LINE in the output for each E1PLOGI in the input when FLAG3 = 'S'
also as i don't understand completely the context theory i cant figure out in witch context to set the fields
My context is set like this
FLAG3 -> context = E1PLOGI
My logic is createif( FLAG3 = 'S' ) -> LINE
My xml test file have:
one E1PLOGI node without E1P0000
one E1PLOGI with E1P0000 node where FLAG3 = 'N'
one E1PLOGI completely OK
The result is that not even one LINE its created.
If only put one line ok it works ok, but if one line doesnt have an E1P0000 node or if FLAG3='S' then the next OK input lines it wont come out.
plase heeelp!
IN STRUCTURE
<Z_HRMD_A>
<IDOC BEGIN="1">
<EDI_DC40 SEGMENT="1">
<CREDAT>20080731</CREDAT>
</EDI_DC40>
<E1PLOGI SEGMENT="1">
<E1PITYP SEGMENT="1">
<E1P0000 SEGMENT="1">
<FLAG3>S</FLAG3>
</E1P0000>
</E1PITYP>
</E1PLOGI>
</IDOC>
</Z_HRMD_A>
Z_HRMD_A 1..1
IDOC 1..1
EDI_DC40 1..1
CREDAT 0..1
E1PLOGI 1..UNBOUNDED
E1PITYP 0..UNBOUNDED
E1P0000 0..UNBOUNDED
FLAG3 0..1
OUT STRUCTURE
<FILE_X>
<LINE>
<FIELD_1>
<FIELD_2>
<FIELD_3>
<FIELD_4>
</LINE>
</FILE_X>
FILE_X 1..1
LINE 0..UNBOUNDED
FIELD_X 0..1
Edited by: Mariano Billinghurst on Aug 4, 2008 6:05 PM
Edited by: Mariano Billinghurst on Aug 4, 2008 6:12 PMHere it is the mapping and the display of the queues in each step.
Mi test xml has
1-one E1EPILOGI without EP0000
2-one E1EPILOGI OK
3-one E1EPILOGI with FLAG3 = N
4-one E1EPILOGI OK
http://img297.imageshack.us/img297/3615/mappingandqueueswi0.jpg
beena with your solution it was creating two lines , one with 1 and one with 3.
Kumar i think with your solution i am much closer, but still doesnt work ok. Could you explain me why at the end of the queres everything says "supress"?
Regards.
Mariano. -
How to map a context attribute to an input field
Hi,
I am new to CRM 2007 UI.I have a table control view on my screen and records are filled in this table when an user enters a value in an input field and presses enter.My bsp page looks something like this.
<%@page language="abap" %>
<%@extension name="chtmlb" prefix="chtmlb" %>
<%@extension name="thtmlb" prefix="thtmlb" %>
<%@extension name="uhtmlb" prefix="uhtmlb" %>
<%@extension name="htmlb" prefix="htmlb" %>
<%@extension name="xhtmlb" prefix="xhtmlb" %>
<%@extension name="crm_bsp_ic" prefix="crmic" %>
<%@extension name="bsp" prefix="bsp" %>
<%
DATA lv_xml TYPE string.
lv_xml = controller->configuration_descr->get_config_data( ).
%>
<thtmlb:grid cellSpacing = "1"
columnSize = "1"
height = "100%"
rowSize = "2"
width = "100%" >
<thtmlb:gridCell colSpan = "1"
columnIndex = "1"
rowIndex = "1"
rowSpan = "1" >
<thtmlb:label id = "NAMELABEL"
for = "NAMEINF"
text = "Enter a name" />
<thtmlb:inputField id = "NAMEINF"
disabled = "FALSE"
tooltip = "Enter a name to see all records"
submitOnEnter = "X"/> </thtmlb:gridCell>
<thtmlb:gridCell colSpan = "1"
columnIndex = "1"
rowIndex = "2"
rowSpan = "1" >
<chtmlb:configTable id = "PaymentTable"
table = "//HeaderData/Table"
xml = "<%= lv_xml %>"
selectedRowIndex = "<%= HeaderData->SELECTED_INDEX %>"
fillUpEmptyRows = "FALSE" />
</thtmlb:gridCell>
</thtmlb:grid>
The problem is that I want to map this input field to my context attribute.I am from Webdynpro background and ther its pretty easy :)....
Any suggestions will be helpful.
Thanks
SouravHi,
you should add the context attribute to the html page itself, or another way of doing it is to implement the set_model method of the view controller.
On the view controller you can find a lot of usefull attributes like the view manager which can help you understand the bsp framework
Best regards,
Erika -
Hy everybody
I'm lost in one of my mapping.
Inbound :
<a>
<b></b>
... n times
<b></b>
</a>
I want it in outbound :
<a>
<c>
<b></b>
</c>
... n times
<c>
<b></b>
</c>
</a>
I don't manage to reach it.
Thanks in advanceHi,
Are you able to get atleast one element under
<C>
<b></b>
</C>
If so ,make use of Remove context and SplitByValue functions here to achieve this.
Check this -
/people/sravya.talanki2/blog/2005/12/08/message-mapping-simplified-150-part-ii
Also you can see the runtime values thru Display Queue in the message Mapping(Repository)
Hope this helps,
Regards,
Moorthy -
Hi everybody, I´m working in a mapping excercise where I want to map a data object in my context that has three header fields and one table to a Visual Composer view, I have no problems with the header fields because they are typed as xsd:string, the problem comes with the complex field (table) called Positions, for sure the 'Positions' type is not the same for the VC model and it never be, so my question is how do you make an input mapping from a complex field in the context to a VC,...
As you can see here is my mapping :
If I delete the 'Positions' mapping the build is ok, but when I map the 'Positions' field the build failed with the following message :
Ant build finished with ERRORS
com.sap.glx.paradigmInterface.bpmn.compiler.BPMNCompilerException: Mapping compilation failed!
[ERROR] Incompatible expression type.
Expected:Form.WS_Data_Object.Positions
Found:PositionType
Build stopped due to an error: com.sap.glx.paradigmInterface.bpmn.compiler.BPMNCompilerException: Mapping compilation failed!
[ERROR] Incompatible expression type.
Expected:Form.WS_Data_Object.Positions
Found:PositionType
MOIN forced shutdown initiated.
It says clairly that expect a Form.WS_DATA_Object.Positions (VC) and found a 'PositionType' from my context.
Do I need to cast every mapping !? How do you achieve that both types are the same !?
Any help will be appreciated.I already change my WSDL (start message) to the Visual Composer start node type, and with that change I´m able to map:
start message -> process context -> VC,
all these objects have the VC types, so the question is....
do I really need to create the VC data and then set my wsdl and process context DO with those types !?
I was thinking in create a wsdl in my trigger then store the input values to a DO object of the same type and then mapping only the required displayed fields to the VC... but If I can´t modify the VC types to meet the context types all this is pointless and I need to recreate all my context into the VC isn´t !?
Any comment will be appreciated. !
thanks ! -
How to map single context value attribute to multiple value attributes?
Hello,
is there any way to map a single value attribute
from view's context into several value attributes
in controller's context?
The business context of what I want to achieve
is the following: I have a view which can be called
in two modes: read only (RO) and read-write (RW).
The input parameters to the view are the same for
both modes, however when in RO mode, the view calls
a different set of web services than when called
in RW mode. Before calling each of the web services
I need to populate their context value attributes
with appropriate input values.
I know I can do it in Java code, but is it possible
to do it without any programming (doing it in the
source code is prone to errors)?
Any help highly appreciated.
Greetings,
Tomek.Hi Kishore,
than you very much for your kind help.
I have already created a value attribute of type
boolean and mapped it into the read-only property
of the UI elements. This however does not solve all
of the problems... I will describe it with an
example:
Let's say the form I want to implement will be
used to: create (read-write mode), update (read-
write mode) or show (read-only mode) customer's
data. The customer's data is complex (lots of
data, including tree structures).
The problem is that:
- when the form is called in read-only mode,
it should populate its fields with values
provided by the getCustomerData web service,
- when the form is called to create a new
customer (in read-write) mode, it should
not use the getCustomerData web service.
Instead it should map the input values
entered by the user into input parameters
of the createNewCustomer web service,
- when the form is called to update customer's
data, it should first display values returned
by the getCustomerData web service, and then
it should map the modified values entered by
the user into input parameters of the
updateCustomer web service,
In all the above cases I must map my view's
context data to different controller's context
elements. Doing it directly in the source code
is not a nice solution. Is there any other
way to achieve this?
Calling a form in different modes in not an
unusual thing, so I was hoping that maybe
there are any built-in mechanisms that would
solve the obove problem...
Greetings,
Tomek. -
Mapping Problem Context Change
Hi all
I use Sap ABABusinessPartner to replicate Data.
Here I have to map only TelephoneNumber where StandardSenderIndicator = X
partner
partner
Telephone
StandardSenderIndicator
TelephoneNumber
Telephone
TelephoneNumber
partner
if context is set to partner Queue of StandardSenderIndicator is <null>;X;<null>
Queue of TelephoneNumber is <null>;Number1 Number2;<null>
; means ContextChange
any Ideas??
<?xml version="1.0"; encoding="UTF-8"?>
<ABABusinessPartner >
<Partner>
<PartnerRecord>
<PartnerInformation>
</PartnerInformation>
</PartnerRecord>
</Partner>
<Partner>
<PartnerRecord>
<PartnerInformation>
<AddressInformation>
<Address>
<AddressData>
<CommunicationInformation>
<TelephoneInformation>
<CompleteDataIndicator>X</CompleteDataIndicator>
<Telephone>
<Contact>
<ContactData>
<StandardSenderIndicator>X</StandardSenderIndicator>
<TelephoneNumber>123456</TelephoneNumber>
</ContactData>
</Contact>
</Telephone>
<Telephone>
<Contact>
<ContactData>
<TelephoneNumber>5556666</TelephoneNumber>
</ContactData>
</Contact>
</Telephone>
</TelephoneInformation>
</CommunicationInformation>
</AddressData>
</Address>
</AddressInformation>
</PartnerInformation>
</PartnerRecord>
</Partner>
<Partner>
<PartnerRecord>
<PartnerInformation>
<AddressInformation>
<Address>
<AddressData>
<CommunicationInformation>
<TelephoneInformation>
<CompleteDataIndicator>X</CompleteDataIndicator>
<Telephone>
<Contact>
<ContactData>
<StandardSenderIndicator>X</StandardSenderIndicator>
<TelephoneNumber>333333</TelephoneNumber>
</ContactData>
</Contact>
</Telephone>
</TelephoneInformation>
</CommunicationInformation>
</AddressData>
</Address>
</AddressInformation>
</PartnerInformation>
</PartnerRecord>
</Partner>
</ABABusinessPartner>Hi,
Telephone
StandardSenderIndicator
TelephoneNumber
Telephone
TelephoneNumber
First check if there is a StandardSenderIndicator tag in the source field (exists) and check if it has value X .....now if both conditions are satisfied map the required source element to target.....hopefully your issue will be solved......
Regards,
Abhishek. -
Can anyone help me about mapping Faces Context please?
Hello buddies!!
Well, my application does'nt even load when i run it and i map the Faces Servlet like below:
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsp</url-pattern>
</servlet-mapping>On the other side, it run perfectly when i put the mapping below :
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>but all my links must have the "faces" befores its real url for instance:
<c:url value="faces/Logout" var="url"/>
<a href="${url}" >Link</a> and it keeps adding the "faces" everytime i click a link on the adress bar like that:
http://myhost/myapp/faces/faces/faces/faces/home.jsp
Thanks very much for any advice!!
All the best!
Message was edited by:
SonecaDon't use *.jsp as the mapping for the FacesServlet. This will override the implicit container mapping for JSPs. Instead, use *.jsf, or *.faces.
-
Complex Mapping - Reset context
Hi everybody,
I have to transform one scenary RFC to FILE, but I had many problems becouse the contexts level of each structures is very different.
In my RFC I have two tables, T_HEADER and T_ITEM like:
1- RFC
1.1- T_HEADER
1.2-T_ITEM
and in my FILE I have:
1-FILE
1.1-Recordset (occor 1 to many)
1.1.1-T_HEADER (occor 1 to 1)
1.1.2-T_ITEM (occor 1 to many)
For each T_HEADER (on RFC) I need one other Recordset (on FILE). And for each T_ITEM (on RFC) I need one other T_ITEM (on FILE) comparing the key field on T_HEADER. In other words I need to group the recordsets by the key founded in both structures, using the header structure as the main structure.
I need samething like this:
RFC-T_HEADER
Key = 1, 2 and 3.
RFC-T_ITEM
Key = 1, 2, 1, 3, 3
Result:
FILE-Recordset
FILE-Recordset-T_HEADER
Key = 1
FILE-Recordset-T_ITEM
Key = 1, 1
FILE-Recordset
FILE-Recordset-T_HEADER
Key = 3
FILE-Recordset-T_ITEM
Key = 3, 3
FILE-Recordset
FILE-Recordset-T_HEADER
Key = 2
FILE-Recordset-T_ITEM
Key = 2
Do you have many ideas to help me?Hi everybody, I found the solution.
I need use an UDF that I call "changeQueue".
If anyone will have the same problem, you can use this UDF:
->Vnode - String (Context item with the values to check the key and add in diferent queue)
->Knode - String (Context header with the key values used to define the queue where the item will be add)
->Nnode - String (Context item with the key values to check and add into queue of context header)
<-result - ResultList (Vnode context into the diferent queue)
for(int i=0; i < Knode.length; i++){
if(Knode<i>.equals(ResultList.CC))
result.addContextChange();
else{
for(int j=0; j < Nnode.length; j++){
if(Nnode[j] == Knode<i>){
result.addValue(Vnode[j]); -
Graph mapping with context not in pair
Hi,
In an IDOC ORDERS05 to whatever scenario I found the following situation. I have to evaluate the value of the field NAME4 when the partner function (PARVW) is WE. The issue comes with the fact that the NAME4 tag only appears when is not empty, so the XML should look like this.
<E1EDKA1 SEGMENT="1">
<PARVW>AG</PARVW>
<PARTN>0000103905</PARTN>
</E1EDKA1>
<E1EDKA1 SEGMENT="1">
<PARVW>RE</PARVW>
<PARTN>0000103905</PARTN>
</E1EDKA1>
<E1EDKA1 SEGMENT="1">
<PARVW>RG</PARVW>
<PARTN>0000103905</PARTN>
</E1EDKA1>
<E1EDKA1 SEGMENT="1">
<PARVW>WE</PARVW>
<PARTN>0000103905</PARTN>
<NAME4>S</NAME4>
</E1EDKA1>
The issue is that the NAME queue will have only one value (or even 0) while the PARVW queue will have 4.
The question: How can I pair both queues again (i.e: inserting blanks to the NAME4 queue wherever is empty)?
thanks in advance for help,
David R.Hi,
You can use standard function 'exists' to chek ehther the field exist and 'createIf' to creat the node if it does not exisit
<i>If there are structuring elements in your target structure that do not exist in the source structure, insert them using this function. Using condition I you can control whether the element is inserted or not. You connect the element in the target structure using O.</i>
Regards
Vijaya -
Difference Between Normal and External Context Mapping
Hi,
I wonder the Difference Between Normal and External Context Mapping.
I1ve already read the docs and articles but I didnt understand.
Thanks,
Jorge Luiz
Edited by: Jorge Castro on Oct 9, 2008 4:23 PMJorge,
With this type of Mapping (also called Reverse Mapping) you can map the context of an using component, to that of the used component.
You can find an example of this concept in WDA ALV: If you look at component SALV_WD_TABLE (which you declare as used when you intend to use ALV), you'll see that it has a node DATA declared as external. In your using component, you map your actual data node to this node.
This allows the ALV to leave the DATA node type open and so to be reused, adjusting it's structure depending on the using component's data.
Edited by: Alejandro Bindi on Oct 9, 2008 4:42 PM
Made a mistake! Have not used this in a while...Ext. mapping is the OTHER way...Using -map-> Used Fixed. -
Mapping of Web App context root and the physical directory of the web app
I'm running Weblogic 7.0 on Windows2000.The physical directory of my web application
is D:\WL8\weblogic81\TestDeploy\build\TestWebApp and under these directory I have
my JSPS, static HTML and WEB-INF. I define the context path of this web app in
the weblogic.xml ;-
<weblogic-web-app>
<context-root>/testapp</context-root>
</weblogic-web-app>
As a result of deploying this web app in the server (or it may be created manually
also), the following entry gets inserted in the server's config.xml ,-
<Application Deployed="true" Name="TestWebApp"
Path="D:\WL8\weblogic81\TestDeploy\build" TwoPhase="true">
<WebAppComponent Name="TestWebApp" Targets="myserver" URI="TestWebApp"/>
</Application>
Now, whenever I make a request of the form "http://localhost:7001/testapp/..",
it's properly executing my web app. My question is, how does the container knows
that for any request for the web app with context path as 'testapp', it has to
server files from D:\WL8\weblogic81\TestDeploy\build\TestWebApp. In the above
process, nowhere such mapping is specified. I expected something like Tomcat's
server.xml, where in docbase we clearly specify this mapping between the context
path and the physical directory. Please help.Let me give some more details and hopefully this will make things clearer.
Say you deploy /foo/bar/myweb.war and in myweb.war you configure a
context-root of /rob
During deployment, the server creates an ApplicationMBean with a path of
/foo/bar/. It then creates a WebAppComponent with a uri of myweb.war.
Next, deployment calls back on the web container and tells it to deploy
the WebAppComponent. The web container reads the myweb.war, parses
descriptors etc. The web container then updates its data structures to
register that myweb.war has a context path of /rob. (It has to figure
out all the other servlet mappings as well.)
When a request for /rob/foo comes in, the web container consults its
data structures to determine which webapp and servlet receives the
request. This is not a linear search of all webapps and servlets.
There's much better ways to do pattern matching.
Hope this clears things up. Let me know if you still have questions.
-- Rob
Arindam Chandra wrote:
Thanks for the answer. Still one thing is not clear. Whatever context path I declare
for my web app as the value of <context-root> element in the weblogic.xml (in
my example it's "/testapp"), it is no where mapped with the "URI" attribute (or
any other attribute, sub-element whatsoever in the <Application> element).
Application Deployed="true" Name="TestWebApp"
Path="D:\WL8\weblogic81\TestDeploy\build" TwoPhase="true">
<WebAppComponent Name="TestWebApp" Targets="myserver" URI="TestWebApp"/>
</Application>
So when a request of the form http://myweblogic.com:7001/testapp/... arrives at
the server, how does the server knows that it has to serve this request with files
from D:\WL8\weblogic81\TestDeploy\build\TestWebApp ? It should not be like the
web container iterates thru all the web application entries in config.xml and
tries to match with one context-root declaration. I repeat, I expected some mapping
similar to Tomcat's server.xml, where in the <docbase> element u clearly specify
the mapping between the context path and the physical directory
Rob Woollen <[email protected]> wrote:
Arindam Chandra wrote:
I'm running Weblogic 7.0 on Windows2000.The physical directory of myweb application
is D:\WL8\weblogic81\TestDeploy\build\TestWebApp and under these directoryI have
my JSPS, static HTML and WEB-INF. I define the context path of thisweb app in
the weblogic.xml ;-
<weblogic-web-app>
<context-root>/testapp</context-root>
</weblogic-web-app>
As a result of deploying this web app in the server (or it may be createdmanually
also), the following entry gets inserted in the server's config.xml,-
<>So the server will look for your web application at the Application Path
(D:\WL8\weblogic81\TestDeploy\build|) + the web uri (TestWebApp). So
it
maps the context-root you've specified /testapp to that path.
It's a little clearer in the case where you had a full-fledged EAR.
Then you'r application path would map to the "root" of the EAR, and the
uris would point to the various modules (eg webapps.)
-- Rob
Now, whenever I make a request of the form "http://localhost:7001/testapp/..",
it's properly executing my web app. My question is, how does the containerknows
that for any request for the web app with context path as 'testapp',it has to
server files from D:\WL8\weblogic81\TestDeploy\build\TestWebApp. Inthe above
process, nowhere such mapping is specified. I expected something likeTomcat's
server.xml, where in docbase we clearly specify this mapping betweenthe context
path and the physical directory. Please help. -
Context Mapping and data binding
Hi,
Please explain about the context mapping and data dinding
and also differences
Thank's & Regard's.
SriHi Sridevi Sudunaguntla ,
context mapping-> means mapping between different contexts
ie suppose if we are creating a node in the component controllet and if we want to use that node in view a and view b, then we have to map this node from component controller to the required view.. this mapping of context nodes is called context mapping..for context mapping, create nodes in compcontroller.. tehn go to view-> context-> tehn drag and drop required node from component controller to the view ..
data binding-> means binding the data from nopde to the ui elements or viceversa... after the nodes are created in indudual views or after context mapping.. we have to bind these nodes to the ui elements... suppose we have an input field and we want to read that,, so we have to bind the input field to an attribute in the node.. this binding is called.. data binding.
Regards
Sarath
Maybe you are looking for
-
I have a new mac book air and somehow iPhoto was installed twice. Also, a second library was created and it became the default library. I attempted to switch to the original library but it won't open. what can I do to revert to the old library?
-
Font too small on Macbook Pro 15" Hi Res
Hi, I was recently given a new Macbook Pro 15" with High Res screen for my birthday. This is my first ever Mac and I'm struggling to read the fonts on the screen! I changed the resolution down to 1440 x 852 but I lose a lot of sharpness. How do incre
-
Oracle.apps.fnd.framework.webui.OARedirectException
Hi , I created a new page which shows results in a table and there is a select checkbox per row of the results table ..and a select button . When clicked on the select button it has to redirect me to non-catalog request page ..for that I have written
-
Server error when trying to install midlet
Hello I am trying to install the HelloWorld midlet on my phone (Samsung X105). I am using Tomcat 5.5 as the web server and I am able to connect to my wml page through the phone. The link to the jad file shows up and I get the install prompt when I se
-
When i try to download trail version of photoshop it says trying to connect to server
everytime i try to download trial version of photoshop it always says trying to connect to servers.