Integration

Get Involved. Join the Conversation.

Posts

  • Kashyap Raghavendra
    OIC Get User name from authentication header of rest Service2
    Topic posted 9:43 AM by Kashyap RaghavendraRed Ribbon: 250+ Points, tagged API, Integration, Mapping 
    Title:
    OIC Get User name from authentication header of rest Service
    Summary:
    Get User name from authentication header of rest Service
    Content:

    Hi,

    Is there an option to get the user name of the invoker of the rest service.I'm only looking for the OIC user name used in authentication header, not th efull credentials.Reading the authentication header as part of request message is not supported.

  • Pooja I
    Overwrite record in Mapper3
    Topic posted December 11, 2019 by Pooja IBronze Medal: 1,250+ Points, tagged Integration, Mapping, Orchestration 
    Title:
    Overwrite record in Mapper
    Content:

    Hi Team,

       I have been trying to figure out a way for the below logic:

     

    I have a file, which has records like below:

    000PAM222604659MOWBRAY, SWATHY               101456      050 20191208   005
    000PAM222604659MOWBRAY, SWATHY               101456      050 20191208   006

    (005 and 006 is ID field)

    from the above file, I want to write only the record which has the latest ID i.e 006 from the above two records.

    I tried using

    1. javascript, but we cannot wirte the output array to OIC.

    2. Two for loops, looping through each record and writing the record. But overwriting the latest record is the issue.

    Please provide your suggestions!!

     

     

    Version:
    19
  • Samuel Lima
    Map with ForEach Error executing XSLAnswered10
    Topic posted December 6, 2019 by Samuel LimaBronze Medal: 1,250+ Points, tagged Integration, Mapping 
    Title:
    Map with ForEach Error executing XSL
    Content:

    Hi experts,

     I have an input with two sets of records: "DadosCondutor" and "ServicosConsulta".

    I want to map DadosCondutor to Condutor.

    In DadosCondutor there is a field called "documentoCondutor" that should match only one retornoServico/conteudo/cpf when servicosConsulta/codigoServico="2039".

    So we have:

    DadosCondutor (for-each)

    ...

         documentoCondutor (must match ServicosConsulta/retornoServico/ conteudo/cpf below)

    ....

    ServicosConsulta (for-each)

    codigoServico (if equals to "2039")

         retornoServico (for-each)

         conteudo

              cpf (must match documentoCondutor)

    But when I run Map Test, I get the following result

       <ns17:response-wrapper>
          <ns17:Condutor>
             <ns17:nomeCondutor>MILTON</ns17:nomeCondutor>
             <ns17:documentoCondutor>11111111111</ns17:documentoCondutor>
             <ns17:quantidadeCarrinhos>2</ns17:quantidadeCarrinhos>
             <ns17:quantidadeCarrinhos>3</ns17:quantidadeCarrinhos>
             <ns17:quantidadeCarrinhos>4</ns17:quantidadeCarrinhos>
             <ns17:quantidadeCarrinhos>43</ns17:quantidadeCarrinhos>
          </ns17:Condutor>
          <ns17:Condutor>
             <ns17:nomeCondutor>BRUNA</ns17:nomeCondutor>
             <ns17:documentoCondutor>22222222222</ns17:documentoCondutor>
             <ns17:quantidadeCarrinhos>2</ns17:quantidadeCarrinhos>
             <ns17:quantidadeCarrinhos>3</ns17:quantidadeCarrinhos>
             <ns17:quantidadeCarrinhos>4</ns17:quantidadeCarrinhos>
             <ns17:quantidadeCarrinhos>43</ns17:quantidadeCarrinhos>
          </ns17:Condutor>
          <ns17:Condutor>
             <ns17:nomeCondutor>FRANCINETI</ns17:nomeCondutor>
             <ns17:documentoCondutor>33333333333</ns17:documentoCondutor>
             <ns17:quantidadeCarrinhos>2</ns17:quantidadeCarrinhos>
             <ns17:quantidadeCarrinhos>3</ns17:quantidadeCarrinhos>
             <ns17:quantidadeCarrinhos>4</ns17:quantidadeCarrinhos>
             <ns17:quantidadeCarrinhos>43</ns17:quantidadeCarrinhos>
          </ns17:Condutor>
          <ns17:Condutor>
             <ns17:nomeCondutor>ANA</ns17:nomeCondutor>
             <ns17:documentoCondutor>44444444444</ns17:documentoCondutor>
             <ns17:quantidadeCarrinhos>2</ns17:quantidadeCarrinhos>
             <ns17:quantidadeCarrinhos>3</ns17:quantidadeCarrinhos>
             <ns17:quantidadeCarrinhos>4</ns17:quantidadeCarrinhos>
             <ns17:quantidadeCarrinhos>43</ns17:quantidadeCarrinhos>
          </ns17:Condutor>
       </ns17:response-wrapper>

     

    That is, instead of matching only one  ServicosConsulta/retornoServico/ conteudo/cpf   for each DadosCondutor/documentoCondutor, it matches all of them.

    Any tip on that?

     

    Below the XSTL code:

      <xsl:stylesheet xmlns:nstrgmpr="http://xmlns.oracle.com/cloud/adapter/REST/GetQuantidadeCarrinhos_REQUEST/types" xmlns:oraext="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc" xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xp20="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:ora="http://schemas.oracle.com/xpath/extension" xmlns:ns2="http://xmlns.oracle.com/cloud/generic/rest/fault/REST/GetQuantidadeCarrinhos" xmlns:oracle-xsl-mapper="http://www.oracle.com/xsl/mapper/schemas" xmlns:nstrgdfl="http://xmlns.oracle.com/procmon" xmlns:ns1="http://xmlns.oracle.com/cloud/adapter/REST/GetQuantidadeCarrinhos_REQUEST" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:fn="http://www.w3.org/2005/xpath-functions" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ignore01="http://www.oracle.com/XSL/Transform/java" xmlns:nxsd="http://xmlns.oracle.com/pcbpel/nxsd" xmlns:dvm="http://www.oracle.com/XSL/Transform/java/com.bea.wli.sb.functions.dvm.DVMFunctions" xmlns:orajs4="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.JsExecutor_SORTUNIQUE_01_00_0000_SortUnique_sortUnique_object" xmlns:ns17="http://xmlns.oracle.com/cloud/adapter/REST/GetQuantidadeCarrinhos/types" xmlns:orajs2="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.JsExecutor_DIASUTEIS_04_01_0000_DiasUteis_afuncFormatDateTimeToDate_aDateTime" xmlns:orajs0="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.JsExecutor_DIASUTEIS_04_01_0004_DiasUteis_afuncFormatDateTimeToDate_aDateTime" xmlns:orajs1="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.JsExecutor_DIASUTEIS_04_01_0005_DiasUteis_afuncFormatDateTimeToDate_aDateTime" xmlns:orajs3="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.JsExecutor_DIASUTEIS_04_02_0000_DiasUteis_afuncFormatDateTimeToDate_aDateTime" xmlns:ns3="http://www.oracle.com/XSL/Transform/java/com.bea.wli.sb.resources.icsxpathfunctions.ICSInstanceTrackingFunctions" xmlns:ns0="http://www.oracle.com/XSL/Transform/java/oracle.tip.dvm.LookupValue" xmlns:ns19="http://xmlns.oracle.com/ics/tracking/ics_tracking_context.xsd" version="2.0" xml:id="id_1" exclude-result-prefixes=" oraext xsd xp20 ora oracle-xsl-mapper xsi fn xsl ignore01" ignore01:ignorexmlids="true">
            <oracle-xsl-mapper:schema xml:id="id_2">
                  <!--SPECIFICATION OF MAP SOURCES AND TARGETS, DO NOT MODIFY.-->
                  <oracle-xsl-mapper:mapSources xml:id="id_3">
                        <oracle-xsl-mapper:source type="WSDL" xml:id="id_4">
                              <oracle-xsl-mapper:schema location="../../application_8/outbound_9/resourcegroup_10/GetQuantidadeCarrinhos_REQUEST.wsdl" xml:id="id_5"/>
                              <oracle-xsl-mapper:rootElement name="execute" namespace="http://xmlns.oracle.com/cloud/adapter/REST/GetQuantidadeCarrinhos_REQUEST/types" xml:id="id_6"/>
                        </oracle-xsl-mapper:source>
                  </oracle-xsl-mapper:mapSources>
                  <oracle-xsl-mapper:mapTargets xml:id="id_7">
                        <oracle-xsl-mapper:target type="WSDL" xml:id="id_8">
                              <oracle-xsl-mapper:schema location="../../application_8/outbound_9/resourcegroup_10/GetQuantidadeCarrinhos_REQUEST.wsdl" xml:id="id_9"/>
                              <oracle-xsl-mapper:rootElement name="executeResponse" namespace="http://xmlns.oracle.com/cloud/adapter/REST/GetQuantidadeCarrinhos_REQUEST/types" xml:id="id_10"/>
                        </oracle-xsl-mapper:target>
                  </oracle-xsl-mapper:mapTargets>
                  <!--GENERATED BY ORACLE XSL MAPPER 12.1.2.0.0-->
            </oracle-xsl-mapper:schema>
            <!--User Editing allowed BELOW this line - DO NOT DELETE THIS LINE-->
            <xsl:param name="tracking_var_1" xml:id="id_40"/>
            <xsl:param name="tracking_var_2" xml:id="id_41"/>
            <xsl:param name="tracking_var_3" xml:id="id_42"/>
            <xsl:template match="/" xml:id="id_11">
                  <nstrgmpr:executeResponse xml:id="id_12">
                        <ns17:response-wrapper xml:id="id_16">
                              <xsl:for-each xml:id="id_18" select="/nstrgmpr:execute/ns17:request-wrapper/ns17:DadosCondutor">
                                    <ns17:Condutor xml:id="id_19">
                                          <ns17:nomeCondutor xml:id="id_22">
                                                <xsl:value-of xml:id="id_23" select="ns17:nomeCondutor"/>
                                          </ns17:nomeCondutor>
                                          <ns17:documentoCondutor xml:id="id_20">
                                                <xsl:value-of xml:id="id_21" select="ns17:documentoCondutor"/>
                                          </ns17:documentoCondutor>
                                          <xsl:for-each xml:id="id_28" select="/nstrgmpr:execute/ns17:request-wrapper/ns17:servicosConsulta">
                                                <xsl:if xml:id="id_30" test="ns17:codigoServico = &quot;2039&quot;">
                                                      <xsl:for-each xml:id="id_32" select="ns17:retornoServico">
                                                            <xsl:if xml:id="id_34" test="ns17:conteudo/ns17:cpf = ../../ns17:DadosCondutor/ns17:documentoCondutor">
                                                                  <ns17:quantidadeCarrinhos xml:id="id_35">
                                                                        <xsl:value-of xml:id="id_39" select="ns17:conteudo/ns17:quantidadeCarrinhos"/>
                                                                  </ns17:quantidadeCarrinhos>
                                                            </xsl:if>
                                                      </xsl:for-each>
                                                </xsl:if>
                                          </xsl:for-each>
                                    </ns17:Condutor>
                              </xsl:for-each>
                        </ns17:response-wrapper>
                  </nstrgmpr:executeResponse>
            </xsl:template>
      </xsl:stylesheet>

     

     

    Thanks,

    Samuel Lima

    Image:
    Code Snippet:
  • Avinash Jayaprakash
    ImportBulkData operation of ERPIntegration service without...15.0
    Topic posted December 5, 2019 by Avinash Jayaprakash, tagged Cloud, ERP Cloud, Integration, Mapping, SOAP, Web Services, xml 
    Title:
    ImportBulkData operation of ERPIntegration service without properties file
    Content:

    How to load FBDI file to ERP using importBulkData operation using ERPIntegration service using parameterList parameter instead of properties file. I have tried loading zipped FBDI file, but its thowing fault as it is expecting properties file. Please find below for the sample request payload.

     

    <importBulkData xmlns:ns0=\"http://www.oracle.com/XSL/Transform/java/com.bea.wli.sb.resources.icsxpathfunctions.ICSInstanceTrackingFunctions\" xmlns:sdoXML=\"commonj.sdo/xml\" xmlns:plnk=\"http://schemas.xmlsoap.org/ws/2003/05/partner-link/\" xmlns:nsmpr6=\"http://xmlns.oracle.com/cloud/ics/fa/v1/ucm/\" xmlns:sdoJava=\"commonj.sdo/java\" xmlns:nsmpr7=\"http://www.oracle.com/XSL/Transform/java/com.bea.wli.sb.functions.dvm.DVMFunctions\" xmlns:nsmpr8=\"http://xmlns.oracle.com/cloud/adapter/ftp/Invoke_DownloadFBDIZipFile_REQUEST/types\" xmlns:wsdl=\"http://schemas.xmlsoap.org/wsdl/\" xmlns:nsmpr9=\"http://xmlns.oracle.com/types/InvokeImportBulkData/OutboundSOAPRequestDocument\" xmlns:nsmpr2=\"http://xmlns.oracle.com/cloud/adapter/ftp/Invoke_DownloadFBDIZipFiles_REQUEST/types\" xmlns:ns35=\"http://xmlns.oracle.com/cloud/adapter/ftp/Invoke_DownloadFBDIZipFile_REQUEST\" xmlns:nsmpr3=\"http://xmlns.oracle.com/cloud/adapter/ftp/Invoke_ListFBDIFiles_REQUEST/types\" xmlns:ns34=\"http://xmlns.oracle.com/cloud/adapter/ftp/Invoke_ListFBDIFiles_REQUEST\" xmlns:xml=\"http://www.w3.org/XML/1998/namespace\" xmlns:ns33=\"http://xmlns.oracle.com/ics/tracking/ics_tracking_context.xsd\" xmlns:ns32=\"http://xmlns.oracle.com/procmon\" xmlns:nsmpr0=\"http://xmlns.oracle.com/cloud/adapter/erp/Invoke_ImportBulkdata_REQUEST\" xmlns:ns37=\"http://xmlns.oracle.com/adf/svc/types/\" xmlns:dvm=\"http://www.oracle.com/XSL/Transform/java/oracle.tip.dvm.LookupValue\" xmlns:nsmpr1=\"http://xmlns.oracle.com/cloud/list/pull\" xmlns:types=\"http://xmlns.oracle.com/apps/financials/commonModules/shared/model/erpIntegrationService/types/\" xmlns:nxsd=\"http://xmlns.oracle.com/pcbpel/nxsd\" xmlns:orajs1=\"http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.JsExecutor_ENCRYPTDECRYPTSAMPLE_01_00_0000_encryptDecryptSample_encryptDecryptSample_param1\" xmlns:orajs2=\"http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.JsExecutor_GETSTARTTIME_01_00_0000_startTime_getStartDate_param1\" xmlns:orajs0=\"http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.JsExecutor_STRINGREPLACE_01_00_0000_StringReplaceJS_StringReplaceJS_inputKey_ReplaceWith\" xmlns:tns=\"http://xmlns.oracle.com/apps/financials/commonModules/shared/model/erpIntegrationService/\" xmlns:nstrgmpr=\"http://xmlns.oracle.com/cloud/adapter/erp/Invoke_ImportBulkdata_REQUEST/types\" xmlns:orafault=\"http://xmlns.oracle.com/oracleas/schema/oracle-fault-11_0\" xmlns:errors=\"http://xmlns.oracle.com/adf/svc/errors/\" xmlns:soap=\"http://schemas.xmlsoap.org/wsdl/soap/\" xmlns:sdo=\"commonj.sdo\" xmlns=\"http://xmlns.oracle.com/cloud/adapter/erp/Invoke_ImportBulkdata_REQUEST/types\">
        <nstrgmpr:document>
            <tns:DocumentId>1909238</tns:DocumentId>
        </nstrgmpr:document>
        <nstrgmpr:jobDetails>
            <tns:JobName>/oracle/apps/ess/financials/generalLedger/programs/common/,JournalImportLauncher</tns:JobName>
            <tns:ParameterList>300000279764762,Payables,300000009274397,ALL,N,N,N</tns:ParameterList>
        </nstrgmpr:jobDetails>
        <nstrgmpr:notificationCode>30</nstrgmpr:notificationCode>
    </importBulkData>

     

    Please let me know if anyone has input on this.

     

    Thanks,

    Avinash

     

  • Marcelo Cavalcante
    Mapping from hierarchical data text file to XMLAnswered4
    Topic last edited December 1, 2019 by Marcelo CavalcanteGreen Ribbon: 100+ Points, tagged Integration, Mapping 
    Title:
    Mapping from hierarchical data text file to XML
    Content:
    Hello, community.
     
    I've just got this really hard integration task. I have a text with the following content:
     
    1,0042
    2,1,Pen,10
    3,4,across the street
    3,6,across the bridge
    2,2,Eraser,6
    3,6,across the street
     
    The first character of each line means the line's type: 1 stands for "purchasing order header", 2 stands for "purchasing order line" (items that I must deliver) and 3 stands for "purchasing order line locations" (where to deliver).
     
    Putting it in a better view for hierarchical comprehension:
     
    1,0042
       └2,1,Pen,10
          └3,4,across the street (from the top to here will become first line in the temporary stage file mentioned at the end of this post)
          └3,6,across the bridge (from the top to here will become second line in the temporary stage file mentioned at the end of this post)
       └2,2,Eraser,5
          └3,5,across the street (from the top to here will become third line in the temporary stage file mentioned at the end of this post)
     
    In clear english: I have one purchasing order, with number 0042, that asks for 10 pens and 5 erasers. 4 pens and all erases must be delivered across the street and 6 pens must be delivered across the bridge.
     
    I need it to became a well-formed XML like the one in code area. I have no idea how to do that. I don't even know if it's possible.
     
    I was able to create a stage file that looks like below, but I don't know if it's the best strategy. The goals was to have in one line all information needed to deliver one single product. After that, it would be possible to group the necessary information.
     
    1,0042,2,1,Pen,10,3,4,across the street
    1,0042,2,1,Pen,10,3,6,across the bridge
    1,0042,2,2,Eraser,6,3,6,across the street
     
    I appreciate any help.
    Code Snippet:
  • Jaeyshree Kumaran
    skip record in for-each present in mapper2
    Topic posted December 4, 2019 by Jaeyshree KumaranRed Ribbon: 250+ Points, tagged Adapters, API, Cloud, Connection, Integration, Mapping, Orchestration, SOAP, Web Services, xml 
    Title:
    skip record in for-each present in mapper
    Content:

    I have write adapter in which I have for-each loop for two levels(1. for-each of assignments, 1.a. for each of Global_Card_Components_State). The Global_Card_Components_State tag will be optional. Some assignments may contain it. I have included a choose condition (as in image). This is successful when Global_Card_Components_State tag is present but fails when input doesnt have that particular tag.

    Is there any option to skip and process next record. <otherwise> doesnt help as i dont have sny option to map as its child.

    I am getting below error when for-each encounters assignments tag without Global_Card_Components_State tag

     

    com.oracle.bpel.client.BPELFault: faultName: {{http://schemas.oracle.com/bpel/extension}remoteFault} messageType: {{http://schemas.oracle.com/bpel/extension}RuntimeFaultMessage} parts: {{ CODE=<code>{http://schemas.oracle.com/bpel/extension}remoteFault</code> ,SUMMARY=<summary>ICS runtime execution error</summary> ,DETAIL=<DETAIL><detail><ICSfaultVar/><reason>Translation Error. Translation Error. Error while translating message to native format. Please make sure that the payload for the outbound interaction conforms to the schema and payload size does not exceed threshold. Error occured as {1} :Application Error</reason><operation>WriteFile</operation></detail></DETAIL>} cause: {null} Stage Read Failed

     

    Image:
  • B Carson
    Read File in Segments to REST Service insert to ATP database6
    Topic posted November 15, 2019 by B Carson, tagged Database, Integration, Mapping, Orchestration, REST 
    Title:
    Read File in Segments to REST Service insert to ATP database
    Summary:
    Read File in Segments to REST Service insert to database results in all rows written in each segment read
    Content:

    I have a very large file to import to my integration.  I am using FTP download and then Stage Read File in Segments to access the data that will be inserted into a database table in our Cloud ATP Oracle database.  The REST call is set up to utilize Batchload in order to post the 200 rows that each read in segment will pull.

    The result is that for each read, All rows in the inbound file are written to the database.  I believe the problem is in the way the elements are defined but cannot see that actual problem.  I am very new to OIC and am learning on the fly.  Any assistance will be appreciated.

    iar is attached.

    Version:
    19.3.3.190924.1600-31522
    Image:
    Document:
  • Priyanka Mishra
    Perform On Table - Select operation is not working as...4
    Topic posted November 27, 2019 by Priyanka MishraGreen Ribbon: 100+ Points, tagged Adapters, Database, Integration, Mapping, PaaS, xml 
    Title:
    Perform On Table - Select operation is not working as expected
    Summary:
    Perform On Table - Select operation is not working as expected
    Content:

    Hi ,

    I am trying to fetch data from two tables. I am doing it with "Perform operation on table " option with select operation. 

    Problem is it's always fetching the child table data for 1st parent table record. For other Parent table records, I am getting child table data as blank.

    Data is available in the table.

    Attaching a sample file. invBalanceTxnsLotIntCollection_2 is coming as NULL for snapshotId '60509'. Data is availble in child table.

     

    Thanks,

    Priyanka

     

    Is there any setting needs to be done while configuring t he DB adapter? Kindly provide your inputs.

     

     

    Document:
  • Roman Schuster
    Map html to REST including tags2
    Topic posted November 25, 2019 by Roman SchusterGreen Ribbon: 100+ Points, tagged Adapters, Cloud, Integration, Mapping, PaaS, REST, RightNow, xml 
    Title:
    Map html to REST including tags
    Summary:
    When trying to map attributes containing html formating the tags are just removed by OIC.
    Content:

    We are trying to implement an integration between DB-AQ and a Oracle Service Cloud (REST). 

    The incoming payload that has html tags for Service Cloud formatting (e.g. <p>Dear Customer</p> <p>this is a welcome e-mail</p>) but when mapping this attribute to the REST-Endpoint OIC just removes all tags and passes only the text to the endpoint. 

    What are we doing wrong here? Is there a way to map the whole content without losing the html tags? 

    Thanks in advance, dear forum smiley

    Roman

  • Sajeena K S
    Generate unique number while reading in segments7
    Topic posted May 17, 2019 by Sajeena K SRed Ribbon: 250+ Points, tagged Cloud, ERP Cloud, Integration, Mapping, PaaS, xml 
    Title:
    Generate unique number while reading in segments
    Summary:
    How to generate a unique number in the xslt while reading the file using segment read from stage
    Content:

    Hi, 

    I am reading an invoice file using the AIC stage read activity. Since the file size is more than 10MB we need to read the file in segments. While transforming the data, it is required to generate a unique invoice id for each line. Tried to concatenate the instance id with the position. But since each segment will have 200 records each, the position is getting repeated in the segments and hence getting unique constraint issue. 

    Any suggestion is appreciated. 

    Thanks in advance.

    Sajeena

    Version:
    19.2.1.0.0