Tables in b2b

Hi,
there is some basic missing concept from B2B developer guide, we can learn all, but DB table part is missing, i did nt found any material for that.
can any one please tell me about basic DB architecture of B2B, what all table involve in it.
I need some a basic tutorial on it.

Similarly in 11g may i know which table replaces tip_businessmessage_rt. The columns which are being used in are messagestate, businesstransactioninstance .In SOAINFRA schema (for e.g. dev_soainfra) you may find B2B_BUSINESS_MESSAGE
Also can anyone share some useful queries which are used in B2B 11g? Queries which fetch about the status of the messages received in the seeded queues, trading partner details, agreement details and channel detailsB2B instance message java API has been released since release 11.1.1.4 (11gR1 PS3). It is recommended to use this API to get information from B2B tables. It is NOT recommended to access b2b tables directly for any monitoring/auditing purpose. To know more about instance message API in 11g, please refer -
http://download.oracle.com/docs/cd/E17904_01/integration.1111/e10229/b2b_api_imsg.htm#BABFEFCD
Alternatively, you may also use web-services exposed by B2B for querying TP/agreement info (section "20.4 Using the Query API") -
http://download.oracle.com/docs/cd/E17904_01/integration.1111/e10229/bb_webservice.htm#CIADAICA
Also share the log files location in the sever to debug b2b issues in 11g.Location of log file - $MW_HOME/user_projects/domains/<domainname>/servers/soa_server<n>/logs/soa_server<n>-diagnostic.log
Regards,
Anuj

Similar Messages

  • B2B 11G questions

    Hi B2BGurus,
    Can anyone explain us with below questions, Here i am giving our scenario and my questions
    Scenarion:
    Div A FTP-> SOA-->B2B OutboundCoustome queue ---> B2B---->Http or HTTPs(AS2) or FTP(As2)
    Div B FTP-> SOA-->B2B OutboundCoustome queue ---->B2B---->Http or HTTPs(AS2) or FTP(As2)
    Div C FTP-> SOA-->B2B OutboundCoustome queue ---- B2B---->Http or HTTPs(AS2) or FTP(As2)
    Div D FTP-> SOA-->B2B OutboundCoustome queue ---->B2B---->Http or HTTPs(AS2) or FTP(As2)
    Explanantion of scenarion:
    1.     Division people places the files in FTP
    2.     Soa picks it up, do the transformation and places the file in B2B outbound custom queue
    3.     B2B server picks it up from B2B outbound custom queue and converts it into native EDI and sends it to trading partner using AS2
    Questions:
    1.     My idea is --for each trading partner planning to create two different queues (one is for outbound and another one is inbound), is it suggestible of creating a n number of custom queues?
    2.     If we creating a custom queues which is suggestible( either JMS custom queues or AQ custom queues)
    3.     If any transaction was error out, to which queues the transaction will go? And how can we find that transaction in database.
    4.     How the 850 transaction and 997 transactions will co-relate, on what basis B2B will check?
    5.     We sent one transaction to supplier and we received a –ve MDN, How can we see that –ve MDN and how we will recognize it
    6.     Are there any different or separate error queues in Oracle B2B?
    7.     What are the important B2B tables in 11G
    8.     In B2B_Instancemessage table we have ID and B2B messageId, Could you please tell us what is the use of this?
    Regards
    cnu

    Hi cnu,
    Http or HTTPs(AS2) or FTP(As2)AS2 supports HTTP/HTTPS only. FTP is not supported as part of AS2.
    1. My idea is --for each trading partner planning to create two different queues (one is for outbound and another one is inbound), is it suggestible of creating a n number of custom queues? It makes sense, specially from maintenance perspective.
    2. If we creating a custom queues which is suggestible( either JMS custom queues or AQ custom queues)Depending upon use case and design you may use either of AQ/JMS but JMS may be preferred for tight performance requirement use cases. (my personal opinion)
    3. If any transaction was error out, to which queues the transaction will go? And how can we find that transaction in database.By default, exception queue is IP_IN_QUEUE (AQ), but you may configure custom JMS exception/error queues. Please refer -
    http://download.oracle.com/docs/cd/E14571_01/integration.1111/e10229/app_except.htm#BCEIEEFF
    4. How the 850 transaction and 997 transactions will co-relate, on what basis B2B will check?Please refer -
    How 850 matches with corresponding 997
    5. We sent one transaction to supplier and we received a –ve MDN, How can we see that –ve MDN and how we will recognize itOn reports console you may see negative MDN's. Please refer "Inbound Exception Handling Scenarios" -
    http://download.oracle.com/docs/cd/E14571_01/integration.1111/e10229/app_except.htm#BCEIEEFF
    6. Are there any different or separate error queues in Oracle B2B?No. By default IP_IN_QUEUE is the error queue.
    7. What are the important B2B tables in 11G
    B2B tables
    Information required about B2B transaction tables in 11g
    It's not recommended to access tables directly. Use InstanceMessageAPI -
    http://download.oracle.com/docs/cd/E17904_01/integration.1111/e10229/b2b_api_imsg.htm#BABFEFCD
    8. In B2B_Instancemessage table we have ID and B2B messageId, Could you please tell us what is the use of this?ID is the unique identifier for the particular table. B2B messageId is actually the unique identifier for a message and used for correlation between requests and response.
    Regards,
    Anuj

  • How B2B Adapter will process multiple statements in one file

    Hi All,
    I have a file of MT940 format. I am able to read the file using B2B adapter. It contains multiple statements. Each statement is having opening and closing balance.
    Now B2B Adapter is creating the instance on each statements Simultaneously.
    Problem:
    Here i need the closing balance of the 1st statement, is opening for the next statement, and i need to record the updated closing and opening balance in table. As B2B is processing independently each statement, i am not able to correlate the statement details.
    Example -
    Lets say i have 3001490311 - 16012013 MT940 File having mutilple statements, Lets say 3 statements.
    Statement 1 -
    Op Bal - 10,000, Cl Bal - 20,000
    Statement 2 -
    Op Bal - 20,000, Cl Bal - 30,000
    Statement 3 -
    Op Bal - 30,000, Cl Bal - 40,000
    I need to record the Updated closing balance in the table, As B2B Adpter starts processing the statements independently, so i am not able to corelate bettwen the statements. Please if any one has any solution for this problem, please post it immediately

    Thanks Anuj,
    Thanks for your reply. As I unchecked the translate button. while testing i came to know that, In B2B console it showing as complete, but soa process is not getting started.
    Problem:
    B2b reading the file sequentially. In My case file type MT940 Postional Flat File. As its getting the starting position of the statement, B2B is creating a instance and that instance keep on moving independently, now again B2b is keep on reading the another statements in the same file.
    Once again B2B is getting a starting position to read the statement, again creating the instance. so in the similar ways B2B is keep on creating the instance for other statement in the same file.
    But in my case i need the out put of one process should be input to the next processs. As B2B is processing independently, i am not able to correalte the processes.
    In my case I need B2b should processs first statement, till completion of the first process second processes should not initiate, so that i can use the out put of one process to input to the another process.
    Thanks
    Dilllip

  • Tracking Messages in AQ

    Hi ,
    Can someone pls guide me how can i check the messages which are put into AQ by B2B or BackEndSystem. Does that data get stored in anyof the tables in B2B Schema or do we need to use any utility for that?
    Thanks,
    Che

    Hi,
    I use the following query:
    select qtb.queue
    , qtb.msg_id
    , qtb.msg_state
    , qtb.enq_time
    , qtb.delay
    , qtb.user_data.msg_id
    , qtb.user_data.inreplyto_msg_id b2b_inreplyto_msg_id
    , decode(instr(qtb.user_data.inreplyto_msg_id, ':'),0,qtb.user_data.inreplyto_msg_id, substr(qtb.user_data.inreplyto_msg_id, 1, instr(qtb.user_data.inreplyto_msg_id, ':')-1)) inreplyto_msg_id
    , decode(instr(qtb.user_data.inreplyto_msg_id, ':'),0,null, substr(qtb.user_data.inreplyto_msg_id, instr(qtb.user_data.inreplyto_msg_id, ':')+1)) conversation_id
    , qtb.user_data.from_party
    , qtb.user_data.to_party
    , qtb.user_data.action_name
    , qtb.user_data.doctype_name
    , qtb.user_data.doctype_revision
    , qtb.user_data.msg_type
    , qtb.user_data.payload
    , qtb.user_data.attachment
    , qtb.consumer_name
    from aq$ip_qtab qtb
    order by enq_time desc;
    There are 3 remarks:
    1. In a later patchset of B2B there is functionlity for ebXML to propagate protocol-converstation-id in the inreplytomsgid. It is of format <inreplytomsgid>:<conversationid>. Therefor the rather complex decode/instr/substr constructs on inreplytomsgid.
    2. I allways recommend everyone to not query the queuetable directly but allways use the aq$<queuetable> view. It is the recommended way to get the correct msg-states and all other message-related information. When creating the queuetable AQ also adds IOT's and views. So the queuetable does not directly on itsself give the correct desired information. So allways use the aq$ip_qtab view in this particular case.
    3. Above query directly gives access to the attributes of the ip-message-type in the payload.
    Regards,
    Martien

  • Help needed in knowing the B2B Table strucure

    Hi All,
    I would like to know the tables in the B2B database that stores the ISA,GS,ST,Receiver ID and Ack flag data.
    Or any document which contains the description of all the tables and what data is stored in them .
    Thanks in advance.
    Regards,
    Kaavya

    Hi Kaavya,
    There is a view called b2b_instancemessage where you will get all the details. Please refer the post Getting the ISA Control Number and other details from a b2b generated file
    which has the view creation script. If you analyze the script you will get to know the relationship between tables in the b2b schema.
    Hope that it helps!!
    Thanks,
    Dibya Prakash Mohapatra

  • B2B tables

    Hi Gurus,
    I am working on oralce B2B 10g, In B2B while configuring the TP profiles, all the configursation will save in Database.
    Can anyone help us with the name of the tables where we can save the tp configurations.
    Is there any document where can we see the complete info about the B2B tables.
    Regards
    Rajsekhar

    Hi Raj,
    Oracle B2B 11g, an integral component in SOA suite offering in OFM(Oracle Fusion Middleware stack) has extensive protocol support and is widely used in various of the business verticals such as Retail, telecom, health care, chemical, hi tech, transportation, logistic, energy and government sector.
    Some of the key points are below.
    1. Tighter in-memory integration with SOA Suite, along with other standard transport such as JMS, AQ etc. This makes the integration seamless and better performance with other components in the SOA suite.
    2. Easy integration with Oracle EBusiness Suite, Peoplesoft,JDEdwards,Siebel apps.
    3. Oracle B2B uses industry leader Edifecs API to provide translation and validation support for EDI and other flat file. This will enable B2B to provide complex caching support for performance and Advanced batching for retail use cases. Oracle B2B uses Edifecs Document Editor for document creation, manageability etc
    4. Comprehensive HL7, MLLP support to be used in health care verticals.
    5. Provides optional metadata cache at various stages for performance use cases.
    6.Advanced version support in B2B metadata which enables the Administrator to switch back and forth between various version of B2B metadata
    7. Provides UI based resubmission feature for messages failed at various stages of the message flow and also for various states, dates and trading partner.
    8. Auto creation and Cloning of Trading partner/Agreement.
    9. Sequencing/Stacking support for sending/receiving the documents in sequence
    10. API Support for Bulk metadata creation.
    11. Define and manage Complex correlation between various business documents using correlation sets
    12.Advanced error/exception handling with Notification mechanism.
    13. Performance tuning using multiple thread support.
    14. Purge and Archival support for runtime data
    15. Integrated with Oracle Enterprise manager for advanced manageability and metrics.
    you can refer to below blogs for more details:
    http://blogs.oracle.com/oracleb2bgurus/
    http://blogs.oracle.com/oracleb2bgurus/what_do_i_like_most_in_11g/
    http://blogs.oracle.com/oracleb2bgurus/2010/04/oracle_b2b_started_kit.html
    There is a way to easy migrate from 10g to 11g B2B. you can refer below:
    http://blogs.oracle.com/oracleb2bgurus/2009/10/export_the_metadata_from_10g_t.html
    Rgds,
    Nitesh Jain
    [email protected]

  • List Price Not getting displayed in B2B Webshop Product Catalog

    Hello Experts,
    We have done all the required configuration to view the LIST PRICE in B2B Webshop product catalog.
    We have done following settings:
    1. Pricing Procedure assignment to the PRODUCT CATALOG VARIANT
    2. Initial Replication of the product catalog
    3. Shopadmin setting for List Price (radio button selection on the GENERAL Informaiton Tab)
    4. XCM Setting - No IPC
    5. For the defined variant, we have maintain an entry in the Parameter for List Prices - ZPR0 and table as CUS506 and Catalog Price type as List Price.
    6 Downloaded the required condition record from ECC to CRM with correct validity period
    But still we are not able to see the LIST PRICE. Any other change (say addition/removal of product from CATALOG areas)in the CATALOG is getting dispayed correctly in the WEBSHOP product catalog except LIST PRICE. That means we feel there is no issue from TREX perspective.
    Any other pointers will be really helpful.
    Regards
    DJ

    What are the fields for CUS506? During replication if the list price is replicated from this table then all the key fields mentioned in this table should be available during replication for this table.
    What my wild guess is that maybe this CUS506 has a field e.g say SHIP_TO or SOLD_TO etc.. Now at the time of replication.. there are no shipto or soldto hence no values/price will replicate to TREX.. hence u will see nothing in catalog.
    regards,
    Dipender Singh

  • Plz help me to find out tables and fields........based on SD,PM,FICO Module

    Hi plz help me to find out the table name and field names as i am unable to find .....In the spec am given requirements in the following pattern.
    Description          SAP-Term                                       Explaination
    1.Salesman        Equipment AC Mgr.                          VBPA2 – this is the salesman code - I need the                                                                               
    description for this.
    2.Vendor              MEPO_TOPLINE-SUPERFIELD     Vendor field is pull from me23n where the                                                                               
    condition will be that COBL-KDAUF (this is a
                                                                                    structure from me23n in item data-account
                                                                                    assignment-sales order. The number here should
                                                                                    be the corresponding contract number. This field
                                                                                    should include a multiple selection function. User                                                                               
    can put more than one description to search for.
    3. Val. Period   Val. Period Category                           Val. Period Category from va41 header-contract
        Category                                                               data. This field should include a multiple selection                                                                               
    function. User can put more than one description                                                                               
    to search for.
    4. Service Order/    CAUFVD-GSTRP/                         This should be the document date where by it is in
        Purchase Order      MEPO_TOPLINE-BEDAT          between the range the user input
        Document Date    
    5. B2B Vendor      MEPO_TOPLINE-SUPERFIELD     Vendor field is pull from me23n where the condition                                                                               
    will be that COBL-KDAUF (this is a structure from
                                                                                    me23n in item data-account assignment-sales                                                                               
    order. The number here should be the                                                                               
    corresponding contract number.
    6. B2B Cost         MEPO1211-NETPR                       This cost is pulled from PO (me23n) however take
                                                                                    note that the price will be pulled out base on line                                                                               
    item Net Price. Make sure that price is taken                                                                               
    corresponding only to the equipment tied to it.                                                                               
    Check on Number 7 to see how is the line item tied                                                                               
    to the equipment.                                                                               
    If this is in other currency please make it to SGD                                                                               
    with the exchange rate field Exchange rate                                                                               
    (MEPO1226-WKURS)
                                                                                  NOTE:: I need to know the table from which I can                                                                               
    determine the currency type as can be seen in the                                                                               
    ME23N transaction and also te exchange rate for                                                                               
    that particular currency.
    7. No of faults                                                          The service order (CAUFVD-AUFNR) created base                                                                               
    on the equipment in Number 8. This should exclude                                                                               
    the service order of type RD08. Service order can be                                                                               
    access by IW33.
    8. Faults Completed                                                This would be the number of faults (Number 13)                                                                               
    which has a system status (CAUFVD-STTXT) of                                                                               
    TECO. System status can be viewed in IW33 Sys.                                                                               
    Status. Take note service order type RD08 will be                                                                               
    excluded
    9. Time Spent on Fault   AFVGD-ISMNW                   This field is in IW41 in confirmation base on the                                                                               
    order created. This field will be the actual time                                                                               
    spent. This will correspond to the Faults                                                                               
    Completed (Number 14). This means only orders                                                                               
    with system status TECO will be pull. Take not                                                                               
    service order type RD08 will be excluded
    10. Fault Cost         RIHAUFK_LIST- DGESKOSIST   This will be the total cost for a service order which                                                                               
    have the status TECO. Those which are not TECO                                                                               
    will not be needed. This field can be obtain from                                                                               
    IW39 (standard report). Execute the report and                                                                               
    there will be a field for Total Actual Cost. You might                                                                               
    need to change the screen layout to be able to view                                                                               
    this. Take note service order type RD08 will be                                                                               
    excluded
    11. PM Hours      AFVGD-ISMNW                            This field is in IW41 in confirmation base on the
                                                                                 order created. This field will be the actual time
                                                                                 spent. This will correspond to the Faults Completed
                                                                                 This means only orders with system
                                                                                 status TECO will be pull. Take note service only
                                                                                 take order type RD08.
    12. Spare Cost   Spare part cost                              This field will be in IW33 under cost tab, and cost
                             PMCOEA-IKOSTENKGR                tab in item level. This will be the actual cost of spare
                                                                                 part after TECO. This will include all order type.
    13. Credit Note   Credit Memo                                 The programs need to pull out credit memo which is
                                                                                 reference from the contract. If there is a credit memo
                                                                                 reference from the contract then the value will be net
                                                                                 price per equipment.

    Can u tell me purpose of this spec ?
    Regards,
    pandu.

  • Issue while handling the functional ack(CONTRL) through B2B

    Hi,
    My requirement is to handle the incoming CONTRL message through B2B and send the data to SOA/AIA application and update the CONTRL data in table. For that i have done the following settings in oracle B2B.
    Functional Ack handled automatically : false
    Functional Ack internal properties : false
    Notify Inbound Receipt Acks     : false
    Notify Inbound Functional Acks : false
    I am able to update the data successfully in the table for the successful scenarios. But if the transaction is failed in SOA/AIA application due to some error then it is creating 2 entries of MSG_ERROR in reports tab in B2B where as it is creating only one entry for MSG_COMPLETE state.
    Please guide me if i am missing anything here. I am getting below 2 errors for 2 separate entries at the same time.
    1)
    Error Code     B2B-52325
    Error Description     Machine Info: (elb1cn14.statoilfuelretail.com) Description: Error in the SOA Composite {0}
    Error Level     ERROR_LEVEL_COLLABORATION
    Error Severity     ERROR
    Error Text     Error in the SOA Composite
    2)
    Error Code     B2B-52325
    Error Description     
    Error Level     
    Error Severity     
    Error Text     Error -: B2B-52325: Error in the SOA Composite {0}
    Edited by: 901994 on Aug 22, 2012 3:36 AM

    But if the transaction is failed in SOA/AIA application due to some error then it is creating 2 entries of MSG_ERROR in reports tab in B2B where as it is creating only one entry for MSG_COMPLETE state.Are you really sure that you are seeing three report entries for SAME transaction?
    I guess B2B listening channel is trying to retry the same file in case of error.App message delivery is not retried in B2B rather failed messages are delivered to the IP_IN_QUEUE. Please enable the logging for B2B engine in TRACE 32 mode and run a test to reproduce the behaviour. Post the log here or mail across to my id (in my profile).
    Regards,
    Anuj

  • Billing Document in B2B Shop.

    Hi gurus,
    we have the following issue that we try to solve since days without result.
    We have a B2B shop connected to CRM 2007. Orders created from the web shop are transferred to ERP where they are delivered and billed. In our Dev and QA system we can see all the delivery and billing documents in the document flow in CRM and we can access/view the billing document in our B2B shop. However in our Production System we only see LIKP documents in the document flow in CRM, but no vbrk documents (invoicing) neither is there a link in the web shop to display the invoice.
    The web shop settings are in all 3 systems the same.
    Any idea where to look or what can go wrong?
    Thanks a lot in advance,
    Nicole

    Hi all,
    just to let you know the answer. Basically our root cause was that the synchronization of our crm adapter filters with ERP went wrong. Even CRM gave as a feedback everything is fine, the filters were synchronized from CRM Prod to ECC TEST. Therefore in the document flow the billing document was filtered out.
    In the ERP table CRMOBJTAB there  we missed entries for object SALESDOCUMENT. The same for table CRMOBJECT.
    Hope this information help someone.
    Cheers,
    Nicole

  • Creating multiple instances for a single file in B2B

    Hi,
    I have a requirement to read the camt.053 file from the remote partner using Oracle B2B and send the file to oracle AIA and insert the data in the ERP database tables. I am able to read the file successfully through B2B using listening channel and send the data to AIA and insert the data in ERP tables but, if there is any error occured while inserting the data in the ERP tables it is creating multiple instances(6 message count) for the same file in B2B reports. where as it is creating only one entry in reports in case of successful insertion. I have not given any retry count in listening channel nor in the database adapter in SOA/AIA composite. I am confused from where B2B is retrying the message ? Do i need to set any system properties? Could you please guide me to resolve this issue?
    Regards,
    Nishanth.

    App message delivery is not retried in B2B, rather failed messages are delivered to the IP_IN_QUEUE. Please enable the logging for B2B engine in TRACE 32 mode and run a test to reproduce the behaviour. Post the log here or mail across to my id (in my profile).
    Regards,
    Anuj

  • BPEL Process unable to read Inbound messages from B2B Inbound IP_IN_QUEUE

    Hi Greetings.
    I am working on setting up trading partners at a customer place using BPEL and B2B. BPEL is 10.1.3 and B2B is 10.1.2. The previous BPEL developers developed some processes and deployed them to Development environment. B2B is also set up by them. Lets say the customer name is Pet Safe who is the host trading partner and the remote trading partner is Pet Smart. PetSmart sends Purchase Orders (850s) using EDI over Internet via AS2 connection. My B2B server has received the test PO and sent back the Functional Acknowledgement (997) to the Remote Trading partner. I can see the messages in TIP_BUSINESSMESSAGE_RT in B2B schema of the database which Oracle 10g.
    There is a BPEL process called RSCProcess850. It has been developed by using JDeveloper 10g. This process has a AQ adapter configured in the source code of BPEL. It uses a managed connection factory to connect to the Adapter framework and makes a connection to the database, which in turn talks to the EIS to dequeue the messages in B2B inbound queues. This process dequeus the messages and transforms the EDI and puts the PO details into Oracle e-business Suite tables. There is another process called SendInvoice which is configured to a Data Base adapter which polls a table in the Data BAse and sends the invoice to the B2B schema by enqueing the data to OutBound queues of B2B schema. I tried creating a connection factory using Enterprize manage console for both AQ Adapter and DB Adapter but when restarted the server it is unable to load all the BPEL process because the source code of BPEL is mismathching the password. So I have deleted the connection factories that are created suing em console. These connection factories insert an entry in oc4j-ra.xml files for both AQ Adapter and DB adapter. Once I have deleted them and restarted the server all the processes are loading but the problem is the BPEL process is neither dequeueing or enqueueing the messages. There are no errors thrown in the BPEL Domain logs also. The test PO order details are not there in the staging tables of the e-business tables, which means that the BPEL process are not able to DeQ or EnQ using the adapters. How do I know whether the adapter is fetchingthe data from staging tables or not? I am nearing my deadline but unable to proceed I am stuck here. Any sort of help or approach is highly appreciated.
    my e-mail Id is [email protected]
    Thanks in advance
    Sudhakar

    Hi,
    To test whether the messgae is ENQ or DEQ u can use the sql given in thte B2B user guide.
    Ritesh

  • Calling New Function Module from JAVA ISA b2b

    I need to call a new function module which accepts some parameters as input and
    returns some result parameters back as output.
    These returned value needs to be displayed on the JSP pages of ISA B2B applications.
    Can someone please guide me and provide code snippet on how to do this?
    Thanks in advance.
    Points will be awarded for all relevant and helpful answers.

    Stride,
    I did this on CRM ISA 4.0...  I used the dev and extension guide as a basis - I think the ISA 5.0 guide has the examples and tutorials in a separate document that can also be downloaded from service.sap.com.
    Here’s some info on how to do it although I can't guarantee this is the full solution or that it will work the same for ISA 5.0, and I will probably forget a lot of stuff as its been a few years since I did it!  I also can’t guarantee it is the correct way to do it – but it worked!  Basically, we built a link into the order overview page to display url’s to order tracking websites using an RFC on the backend CRM system.  Hope it helps anyway.
    1. Create RFC enabled function module in backend.
    2. Edit file backendobject-config.xml in folder project_root\b2b_z\WEB-INF\xcm\customer\modification:-
    [code] <backendobject
         xmlns:isa="com.sapmarkets.isa.core.config"
         xmlns:xi="http://www.w3.org/2001/XInclude"
         xmlns:xml="http://www.w3.org/XML/1998/namespace">
         <configs>
              <!-- customer changes in backendobject-config should be done here by extending/overwriting the base configuration-->
              <xi:include
                   href="$
    Template for backend object in customer projects
    Concrete implementation of a backend object
    This implemenation demonstrates how a backend object
    is used to communicate with the CRM system
    @see com.ao.isa.backend.boi.Z_AOFuncBackend#getOrderDeliveryTrackingData(java.lang.String)
    Interface used to communicate with a backend object
    The purpose of this interface is to hide backend implementation details
    from the business objects
    Returns a vector of Z_OrderDeliverTracking objects containing data to link
    to external delivery tracking websites
    @param orderNo The sales order document number
    @return A vector of order tracking objects
    @return
    @return
    @return
    @return
    @return
    @param string
    @param string
    @param string
    @param string
    @param string
    /modification/backendobject-config.xml#xpointer(backendobject/configs/*)"/>
              <!-- This is an example customer extension. A new Backend Object is registered in the framework using XCM extension mechanism. -->
              <!-- If you write customer extensions you should register your backend objects in the same way. -->
              <!-- Please make sure that you use the correct base configuration (e.g. crmdefault for CRM or r3default, r3pidefault for R/3) -->
              <config
                   isa:extends="../config[@id='crmdefault']">
                   <businessObject
                        type="Z_AO_Custom"
                        name="Z_AO_Custom"
                        className="com.ao.isa.backend.crm.Z_AOFuncCRM"
                        connectionFactoryName="JCO"
                        defaultConnectionName="ISAStateless"/>
              </config>
         </configs>
    </backendobject>
    [/code]
    File com.ao.isa.backend.crm.Z_AOFuncCRM.java looks like this :-
    [code] package com.ao.isa.backend.crm;
    //jco imports
    import java.util.Vector;
    import com.ao.isa.backend.boi.Z_AOFuncBackend;
    import com.ao.isa.businessobject.order.Z_OrderDeliveryTrackingItem;
    import com.sap.mw.jco.JCO;
    import com.sap.mw.jco.JCO.ParameterList;
    import com.sapmarkets.isa.core.eai.BackendException;
    import com.sapmarkets.isa.core.eai.sp.jco.BackendBusinessObjectBaseSAP;
    import com.sapmarkets.isa.core.logging.IsaLocation;
    public class Z_AOFuncCRM
         extends BackendBusinessObjectBaseSAP
         implements Z_AOFuncBackend
         // initialize logging
         private static IsaLocation log =
              IsaLocation.getInstance(Z_AOFuncCRM.class.getName());
         /* (non-Javadoc)
         public Vector getOrderDeliveryTrackingData(String orderNo)
              Vector urlData = new Vector();
              try
                   // get Java representation of function module
                   JCO.Function func =
                        getDefaultJCoConnection().getJCoFunction(
                             "Z_BAPI_CRM_ORDER_TRACKING_URLS");
                   // provide export parameters
                   ParameterList params = func.getImportParameterList();
                   params.setValue(orderNo, "ORDER_NO");
                   func.setExportParameterList(params);
                   // execute function
                   getDefaultJCoConnection().execute(func);
                   // get result table
                   JCO.Table table =
                        func.getTableParameterList().getTable("TRACKING_DATA");
                   int numRows = table.getNumRows();
                   for (int i = 0; i < numRows; i++)
                        // get row
                        table.setRow(i);
                        // create a new Z_orderdeliverytracking object
                        Z_OrderDeliveryTrackingItem trackItem =
                             new Z_OrderDeliveryTrackingItem(
                                  table.getString(0),
                                  table.getString(1),
                                  table.getString(2),
                                  table.getString(3),
                                  table.getString(4));
                        urlData.addElement(trackItem);
                        trackItem = new Z_OrderDeliveryTrackingItem();
                   return urlData;
              catch (BackendException bex)
                   // The following key has to be added to WEB-INF/classes/ISAResources.properties
                   // in order to see the exception correctly
                   log.config("ao.b2b.order.error.getOrderTrackingURLs", bex);
              return null;
    [/code]
    And file com.ao.isa.backend.boi.Z_AOFuncBackend.java looks like this:-
    [code] package com.ao.isa.backend.boi;
    //package java.ao.com.ao.isa.backend.boi;
    import java.util.Vector;
    import com.sapmarkets.isa.core.eai.sp.jco.JCoConnectionEventListener;
    public interface Z_AOFuncBackend
         public Vector getOrderDeliveryTrackingData(String orderNo);
    [/code]
    Whilst file com.ao.isa.businessobject.order.Z_OrderDeliveryTrackingItem.java looks like this:-
    [code]
    package com.ao.isa.businessobject.order;
    // Referenced classes of package com.sapmarkets.isa.businessobject.order:
    //            PaymentType
    public class Z_OrderDeliveryTrackingItem // extends SalesDocument implements OrderData
         private String deliveryDocNo;
         private String goodsIssuedDate;
         private String consignmentNo;
         private String status;
         private String url;
         public Z_OrderDeliveryTrackingItem()
         public Z_OrderDeliveryTrackingItem(
              String delDocNo,
              String GIDate,
              String consNo,
              String status,
              String url)
              this.setDeliveryDocNo(delDocNo);
              this.setGoodsIssuedDate(GIDate);
              this.setConsignmentNo(consNo);
              this.setStatus(status);
              this.setUrl(url);
         public String getConsignmentNo()
              return consignmentNo;
         public String getDeliveryDocNo()
              return deliveryDocNo;
         public String getGoodsIssuedDate()
              return goodsIssuedDate;
         public String getStatus()
              return status;
         public String getUrl()
              return url;
         public void setConsignmentNo(String string)
              consignmentNo = string;
         public void setDeliveryDocNo(String string)
              deliveryDocNo = string;
         public void setGoodsIssuedDate(String string)
              goodsIssuedDate = string;
         public void setStatus(String string)
              status = string;
         public void setUrl(String string)
              url = string;
    [/code]
    3. Edit file bom-config.xml in folder project_root\b2b_z\WEB-INF\xcm\customer\modification :-
    [code] <BusinessObjectManagers
         xmlns:isa="com.sapmarkets.isa.core.config"
         xmlns:xi="http://www.w3.org/2001/XInclude"
         xmlns:xml="http://www.w3.org/XML/1998/namespace">
         <!-- customer changes in bom-config should be done here by extending/overwriting the base configuration-->
         <xi:include
              href="$/modification/bom-config.xml#xpointer(BusinessObjectManagers/*)"/>
         <!-- This is an example Business Object Manager. It can act as template for customer written Business Object Managers -->
         <BusinessObjectManager
              name="Z_AO-BOM"
              className="com.ao.isa.businessobject.Z_AOBusinessObjectManager"
              />
    </BusinessObjectManagers>
    [/code]
    File com.ao.isa.businessobject.Z_AOBusinessObjectManager.java looks like this:-
    [code] package com.ao.isa.businessobject;
    // Internet Sales imports
    import com.sapmarkets.isa.core.businessobject.management.BOManager;
    import com.sapmarkets.isa.core.businessobject.management.DefaultBusinessObjectManager;
    import com.sapmarkets.isa.core.businessobject.BackendAware;
    Template for a custom BusinessObjectManager in customer projects
    public class Z_AOBusinessObjectManager
         extends DefaultBusinessObjectManager
         implements BOManager, BackendAware {
         // key used for the backend object in customer version of backendobject-config.xml
         public static final String CUSTOM_BOM = "Z_AO-BOM";
         // reference to backend object
         private Z_AOFunc mCustomBasket;
    constructor
         public Z_AOBusinessObjectManager() {
    Method is called by the framework before the session is invalidated.
    The implemenation of this method should free any allocated resources
         public void release() {
    Returns custom business object
         public Z_AOFunc getCustomBasket() {
              if (mCustomBasket == null) {
                   mCustomBasket = new Z_AOFunc();
                   assignBackendObjectManager(mCustomBasket);
              return mCustomBasket;
    [/code]
    And uses file com.ao.isa.businessobject.Z_AOFunc.java which looks like this:-
    [code]
    package com.ao.isa.businessobject;
    // Internet Sales imports
    import com.sapmarkets.isa.core.businessobject.BOBase;
    import com.sapmarkets.isa.core.businessobject.BackendAware;
    import com.sapmarkets.isa.core.eai.BackendObjectManager;
    import com.sapmarkets.isa.core.eai.BackendException;
    import com.sapmarkets.isa.core.logging.IsaLocation;
    // custom imports
    import com.ao.isa.backend.boi.Z_AOFuncBackend;
    import java.util.Vector;
    Template for business object in customer projects
    public class Z_AOFunc extends BOBase implements BackendAware
         // initialize logging
         private static IsaLocation log =
              IsaLocation.getInstance(Z_AOFunc.class.getName());
         private BackendObjectManager bem;
         private Z_AOFuncBackend backendAOBasket;
    Returns a reference to the backend object. The backend object
    is instantiated by the framework.
    @return a reference to the backend object
         private Z_AOFuncBackend getCustomBasketBackend()
              if (backendAOBasket == null)
                   //create new backend object
                   try
                        backendAOBasket =
                             (Z_AOFuncBackend) bem.createBackendBusinessObject(
                                  "Z_AO_Custom");
                        // the backend object is registered in customer version
                        // of backendobject-config.xml using the 'Z_AO_Custom' type
                   catch (BackendException bex)
                        // The following key has to be added to WEB-INF/classes/ISAResources.properties
                        // in order to see the exception correctly
                        log.config("ao.b2b.order.error.getOrderTrackingURLs", bex);
              return backendAOBasket;
    This method is needed when a business object has a corresponding
    backend object.
         public void setBackendObjectManager(BackendObjectManager bem)
              this.bem = bem;
    Returns a vector of url links for tracking
    @return vector of urls
         public Vector getOrderDeliveryTrackingData(String orderNo)
              // the call is delegated to the CRM aware backend object
              return getCustomBasketBackend().getOrderDeliveryTrackingData(orderNo);
    [/code]
    4. Edit file config.xml in folder project_root\b2b_z\WEB-INF to add custom actions (the section below is just the custom stuff added at the end of the file – the Z_orderTracking is the relevant one) :-
    [code] <!-- Begin of custom AO action definitions -->
         <action path="/b2b/Z_orderTracking" type="com.ao.isa.order.actions.Z_OrderTrackingAction">
              <forward name="success" path="/b2b/order/Z_orderTracking.jsp"/>
         </action>
         <action path="/catalog/Z_displaySVGPage" type="com.ao.isa.catalog.actions.Z_SVGPageAction">
              <forward name="success" path="/catalog/Z_SVG_fs.jsp"/>
         </action> [/code]
    Which points at Java file com.ao.isa.order.actions.Z_OrderTrackingAction.java which looks like this :-
    [code] package com.ao.isa.order.actions;
    // internet sales imports
    import com.sapmarkets.isa.core.BaseAction;
    import com.sapmarkets.isa.core.UserSessionData;
    // struts imports
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
    import org.apache.struts.action.ActionForm;
    // servlet imports
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.ServletException;
    // Internet Sales imports
    import com.ao.isa.businessobject.Z_AOBusinessObjectManager;
    import java.util.Vector;
    This action acts as a template for customer extensions
    public class Z_OrderTrackingAction extends BaseAction
    This method is called by the ISA Framework when the
    action is executed
         public ActionForward doPerform(
              ActionMapping mapping,
              ActionForm form,
              HttpServletRequest request,
              HttpServletResponse response)
              throws ServletException
              // get user session data object
              UserSessionData userSessionData =
                   UserSessionData.getUserSessionData(request.getSession());
              // gettting custom BOM
              Z_AOBusinessObjectManager myBOM =
                   (Z_AOBusinessObjectManager) userSessionData.getBOM(
                        Z_AOBusinessObjectManager.CUSTOM_BOM);
              // get the order number being processed
              String orderDocNumber = request.getParameter("orderNo");
              // pass the order number back to the page
              request.setAttribute("orderNo", orderDocNumber);
              if (orderDocNumber != null)
                   // Get a vector of delivery tracking objects from lower layers (Business Object layer =>
                   // Business Logic Service Layer)
                   Vector trackingTable =
                        myBOM.getCustomBasket().getOrderDeliveryTrackingData(
                             orderDocNumber);
                   String error = "";
                   if (trackingTable != null)
                        if (trackingTable.size() == 0)
                             error = "true";
                        else
                             error = "false";
                   else
                        error = "true";
                   request.setAttribute("errorMessage", error);
                   request.setAttribute("trackingTable", trackingTable);
              return mapping.findForward("success");
    [/code]
    5. I added the call to the function module for page orderstatusdetail.jsp in folder project_root\b2b_z\b2b\order to display a custom page Z_orderTracking.jsp in the same folder.  To do this I added a link into the HTML to call a JavaScript function that passed the current order number to the /b2b/Z_orderTracking.do actionhandler mapped in the config.xml file.
    So, in summary!  Create an RFC; define business managers for it in the XML files; create a new Strut action and supporting Java class; create all the Java class’ for the managers.
    I hope this makes some sense!
    Gareth.

  • How to populate the collaboration name field in B2B?

    hello,
    There a field in oracle B2B 11g console in Reports --> Conversations
    the Collaboration ID field get populated with the Id
    just wanted to know how can we populate the Collaboration name ?
    Regards,
    Shreya

    Solved..:)
    Solution:
    While creating the ALV grid, use the method 'get_layout' of the class CL_SALV_TABLE and get the reference of the layout in a reference variable.
    Data:
          gw_key       TYPE            salv_s_layout_key.
      gr_layout = gr_grid->get_layout( ).
      gw_key-report = sy-cprog.
      gw_key-logical_group = gc_log_grp." Pass the logical group here say logical group: 0001, 0002, etc. for each ALV
    So, whenever you create/ change a layout on the ALV grid, the system automatically passes this logical group and saves it in the table LTDX.
    Regards
    s@k

  • Reg XML to Plain Conversion using B2B add on

    Hi All,
    This is an outbound scenario where the  message is sent to AS2 receiver channel and the output is Plain file. I have added all the module parameters
    and the content type as application/plain. While testing I am facing the error,
    Exception caught by adapter framework: XML-Parser error occured while parsing: Cannot initialize XML to plain handlerCan not find a matching configuration for sender party "", service , receiver party ,service , namespace , action  in table B2B_PLA_CTRL_IF.
    Can anyone help me on this issue.
    Cheers,
    Neethu

    Hi Neethu,
    Did you import the content? See How to install the new B2B add-on , see step 5.1
    You need to do this for the message type you want to exchange ((EDI, ansi X.12, ...).
    Also, please do step 5.2. I guess this is not the case.
    Kind regards,
    Dimitri

Maybe you are looking for

  • Error opening PDF files on anonymous SharePoint 2013SP1 site with IE

    Clicking search results, in the strict sense pdf files, using IE on an anonymous SharePint 2013SP1 site, I received the error: There was an error opening this document. The filename, directory name, or volume label syntax is incorrect. I would like t

  • Table cell color in webdynpro for ABAP

    Hai, I need to differentiate some table cell values using color change or some other way. while populating table values, I have a field like mandatory or optional. According to mandatory field, I need to chage color the text of the another column in

  • Contact Center Ent. Integration with CUCM

    I have CUCM 8.0 and CCX 8.0 and i am trying to setup the integration between them. I have created a user on the CUCM and CTI Port and done the required configuration on the CCX. Under CTI Port Status & IP Address it is giving unknown. I have attached

  • AIR compatible with Flex 2.01

    I have FB 2.01 and by the time my purchase request gets approved for FB 3, FB 4 or 5 will be out. So I need to know if I can download the SDK and use it with 2.01. Thanks in advance.

  • Javascript error when viewing IE 8 (autosizing popup)

    Experiencing script error in IE8 when trying to display webpage created in Robohelp 8. The problem does not exist on other computers in my office. This function was working and now it is not. Do I need to change my code some how? I have already tried