Webinvoke put complex structure

Hi,
I have the following declaration:
[OperationContract]
[WebInvoke(Method = "PUT", UriTemplate = "svcrVCIPutBellImages? images_in={images_in}")]
String svcrVCIPutBellImages(VCI_Bell_Images[] images_in);
Where the array is defined as:
#region VCI_Bell_Images
[DataContract]
public class VCI_Bell_Images
public VCI_Bell_Images()
this.acsAlarmType = " ";
this.sImage = null;
this.acsFileExtension = " ";
this.acsFileName = " ";
public VCI_Bell_Images(String acAlarmType, byte[] Image, String FileExtension)
this.acsAlarmType = acAlarmType;
this.sImage = Image;
this.acsFileExtension = FileExtension;
this.acsFileName = "none";
public VCI_Bell_Images(String acAlarmType, byte[] Image, String FileName, String FileExtension)
this.acsAlarmType = acAlarmType;
this.sImage = Image;
this.acsFileExtension = FileExtension;
this.acsFileName = FileName;
[DataMember]
public String acAlarmType
get { return this.acsAlarmType; }
set { this.acsAlarmType = value; }
[DataMember]
public byte[] Image
get { return this.sImage; }
set { this.sImage = value; }
[DataMember]
public String FileExtension
get { return this.acsFileExtension; }
set { this.acsFileExtension = value; }
[DataMember]
public String FileName
get { return this.acsFileName; }
set { this.acsFileName = value; }
private String acsAlarmType;
private byte[] sImage;
private String acsFileExtension;
private String acsFileName;
#endregion
Everything about this structure is string and byte arrays.
QueryStringConverter is supposed to handle strings and byte arrays natively.
But I get the errors:
Server Error in '/' Application.
Operation 'svcrVCIPutBellImages' in contract 'IVCIWCFRServices' has a query variable named 'images_in' of type 'VCIWCFRestfulServiceNS.VCI_Bell_Images[]', but type 'VCIWCFRestfulServiceNS.VCI_Bell_Images[]' is not convertible by 'QueryStringConverter'. Variables for UriTemplate query values must have types that can be converted by 'QueryStringConverter'.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.InvalidOperationException: Operation 'svcrVCIPutBellImages' in contract 'IVCIWCFRServices' has a query variable named 'images_in' of type 'VCIWCFRestfulServiceNS.VCI_Bell_Images[]', but type 'VCIWCFRestfulServiceNS.VCI_Bell_Images[]' is not convertible by 'QueryStringConverter'. Variables for UriTemplate query values must have types that can be converted by 'QueryStringConverter'.
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:
[InvalidOperationException: Operation 'svcrVCIPutBellImages' in contract 'IVCIWCFRServices' has a query variable named 'images_in' of type 'VCIWCFRestfulServiceNS.VCI_Bell_Images[]', but type 'VCIWCFRestfulServiceNS.VCI_Bell_Images[]' is not convertible by 'QueryStringConverter'. Variables for UriTemplate query values must have types that can be converted by 'QueryStringConverter'.]
System.ServiceModel.Dispatcher.UriTemplateClientFormatter.Populate(Dictionary`2& pathMapping, Dictionary`2& queryMapping, Int32& totalNumUTVars, UriTemplate& uriTemplate, OperationDescription operationDescription, QueryStringConverter qsc, String contractName) +1070
System.ServiceModel.Web.WebServiceHost.IsRawContentMapperCompatibleDispatchOperation(OperationDescription operation, Int32& numStreamOperations) +184
System.ServiceModel.Web.WebServiceHost.SetRawContentTypeMapperIfNecessary(ServiceEndpoint endpoint, Boolean isDispatch) +244
System.ServiceModel.Web.WebServiceHost.OnOpening() +434
System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout) +265
System.ServiceModel.Channels.CommunicationObject.Open() +36
System.ServiceModel.HostingManager.ActivateService(ServiceActivationInfo serviceActivationInfo, EventTraceActivity eventTraceActivity) +90
System.ServiceModel.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath, EventTraceActivity eventTraceActivity) +598
[ServiceActivationException: The service '/VCIWCFRServices' cannot be activated due to an exception during compilation. The exception message is: Operation 'svcrVCIPutBellImages' in contract 'IVCIWCFRServices' has a query variable named 'images_in' of type 'VCIWCFRestfulServiceNS.VCI_Bell_Images[]', but type 'VCIWCFRestfulServiceNS.VCI_Bell_Images[]' is not convertible by 'QueryStringConverter'. Variables for UriTemplate query values must have types that can be converted by 'QueryStringConverter'..]
System.Runtime.AsyncResult.End(IAsyncResult result) +485948
System.ServiceModel.Activation.HostedHttpRequestAsyncResult.End(IAsyncResult result) +174
System.ServiceModel.Activation.AspNetRouteServiceHttpHandler.EndProcessRequest(IAsyncResult result) +6
System.Web.CallHandlerExecutionStep.OnAsyncHandlerCompletion(IAsyncResult ar) +129
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.34212
Ok, what do I have to do?
Please advise
Boyd
But the inverse works fine:
[OperationContract]
[WebGet(UriTemplate = "svcrVCIGetBellImages")]
VCI_Bell_Images[] svcrVCIGetBellImages();
So I can GET a list of complex structures, but I cannot PUT the same structure!!!
BDM

Hi Boyd1,
In my mind WCF UriTemplate does not support complex objects. So in this case you may need to stick with primary types from .NET. If you still want to use a complex object as parameter to your method, then maybe you need to drop the
UriTemplate and pass your object using JSON.
Best Regards,
Amy Peng
We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
Click
HERE to participate the survey.

Similar Messages

  • Complex structures in Sender File adapter

    Hi Experts
    I am working on XI 3.0 SP 22. How do we handle the complex structures in sender file adapter in file content conversion.
    Please help me out.
    Regards
    Hari

    Hi,
    FCC can support upto max 3 levels, find below link for more help
    http://help.sap.com/saphelp_nw70/helpdata/en/2c/181077dd7d6b4ea6a8029b20bf7e55/content.htm
    Content Conversion ( The Key Field Problem )

  • Error while creating Complex Structure

    Hi Friends,
         When I am creating a complex structure with KOMG,KONH,KONP,which are related to pricing conditions data.
    But I am getting the error as "<b>Field name 'ZZEMPL1' can already exist in a subsequent system</b>" for some of the customer fields in the KOMG structure.I am unable to understand what is the subsequent system?
    So please help me to solve this issue.
    Regards,
    Anil

    hi guru,
    just component name as --- your field name.
    where as component type as give just data element k.
    no need to give tablenme-fieldname k.
    component         component type .
    f1                        matnr----
    data element
    thanks anji.
    Moderator message: please do not use SMS speak, what does that "k" mean, short for "OK"? please get your act together, these are professional forums.
    Edited by: Thomas Zloch on Nov 15, 2010 9:10 AM

  • Complex structure SPLITING

    HI,
    We are working inbond scenario(FILE to proxy) with split.and sender structure as complex structure.like
    both sender and receiver structure as
    MT_DATATYPE(message type)
    HEADER(H01)----
    This is Header record .It should be come only one for entire record structure.
    RECORD_1(R1)------In each record have some nodes like R11,R12,R13....
    RECORD_2(R2)------In each record have some nodes like R21,R22,R23....
    RECORD_3(R3)
    RECORD_4 (R4)  etc..total 12 records.
    but while we are using multiuple records for testing purpose like as below
    H01,R1,R2,R4,R2,R3,R1,R4............,H01,R2,R4,R3.R4.R1.R3...........H01,R1,R3,R4.....
    so i want record target record structure as 3 set of structure becuase the test file has 3 HO1 nodes.The required target structure should be like this
    MT_DATATYPE1(Message type1)------H01,R1,R2,R4,R2,R3,R1,R4.(REQUIRED STRUCTURE)
    MT_DATATYPE2(Message type2).......H01,R2,R4,R3.R4.R1.R3.(REQUIRED STRUCTURE)
    MT_DATATYPE2(Message type3)............H01,R1,R3,R4.(REQUIRED STRUCTURE)
    Here we have to do some validation in the mapping.so atleast one mappping should be using for validation.while trying to do this validation this mapping it was showing the target structure as
    MT_DATATYPE1(Message type1)------H01,R1,R1,R2,R2,R3,R4,R4.(AS OF NOW WE ARE GETTING error OUTPUT)
    MT_DATATYPE2(Message type2).......H01,R1,R2,R3.R3,R4.R4.(AS OF NOW WE ARE GETTING error OUTPUT)
    MT_DATATYPE2(Message type3)............H01,R1,R3,R4.(AS OF NOW WE ARE GETTING error OUTPUT).
    STEP TO TRIED THIS SOLUTION:
    1.DOM parser(javamapping) also added in this structure but still getting same problem.
    2.In first mapping structure have only using  java mapiing so that  total record divided into 3 different structure like..
    MT_DATATYPE.......
    TOTALRECORD..H01,R1,R2,R4,R2,R3,R1,R4
    ToTALRECORD..,H01,R2,R4,R3.R4.R1.R3
    TOTALRECORD...H01,R1,R3,R4.....
    then the toal strucre send to receiver communication channel for receving entire strcture.Then the same structure will pick sender communication channel using FCC and i am using record strsucture per message as 1.for picking sthe single structure in the entier structuree . but still we are getting some problem.it didnt take entier single structure .It was taking like below structure.
    TOTALRECORD..H01,R1,R2,R4.
    TOTALRECORD..,R2,R3,
    TOTALRECORD..,R1,R4........still problem.
    PLease help me .may be this is high complex issue.
    Thanks
    kumar

    Hi ,
            Is there any condition for mapping the record and header .
    - Muru

  • Mapping of complex structure in XI

    Hi friends,
    I have a RFC to SOAP scenario in XI. As a response message they have given a structure with single field in it. But when it is coming over, it has a complex structure, I need to break it to different fields in my internal table. The response I have is given below.
    <Result><Response><FileID _Inserted="1" xmlns:dt="urn:schemas-microsoft-com:datatypes" dt:dt="string">1992143</FileID><AuthID xmlns:dt="urn:schemas-microsoft-com:datatypes" dt:dt="i4">195894</AuthID><MessageList _Inserted="1"><Message _Inserted="1" xmlns:dt="urn:schemas-microsoft-com:datatypes" dt:dt="string">Domain value is invalid for field FilePriority (Client Name), Priority Type (Cartus Name) . The value received was SFNR.</Message><Message _Inserted="1" xmlns:dt="urn:schemas-microsoft-com:datatypes" dt:dt="string">The Destination Location State/Province is invalid. The State/Province was deleted and appended to City/Town. The value was Chennai.</Message><Message _Inserted="1" xmlns:dt="urn:schemas-microsoft-com:datatypes" dt:dt="string">Received Authorized Initiator (Nambissan, Rajesh) is not an active contact for client/division, Default Initiator was used.</Message></MessageList></Response></Result>
    From this I need to seperate the fileid, authid, messages seperately. Can anyone please suggest how I can do that.
    Thanks in advance for your help.
    Anjana.

    Hi,
    I created a .xsl file using Altova MapForce with the result xml I got from the other system and xml created from my RFC.
    I created a zip file using that .xsl and imported it in archives, and used it in Interface mapping. Now, it is not giving me any error but the mapping is not happening as I expected. I m getting some weird result.
    The .xsl file is as follows:
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:n2="http://tempuri.org/message/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ns1="urn:sap-com:document:sap:rfc:functions" xmlns:dt="urn:schemas-microsoft-com:datatypes" exclude-result-prefixes="dt n2 xs xsi xsl" xmlns="urn:sap-com:document:sap:rfc:functions">
         <xsl:namespace-alias stylesheet-prefix="n" result-prefix="#default"/>
         <xsl:output method="xml" encoding="UTF-8" indent="yes"/>
         <xsl:template match="/">
              <ns1:Z_PA_SAP_TO_CENDANT.Response>
                   <xsl:attribute name="xsi:schemaLocation">
                        <xsl:value-of select="'urn:sap-com:document:sap:rfc:functions C:/DOCUME~1/asankara/Desktop/Z_PA_SAP_TO_CENDANT.xsd'"/>
                   </xsl:attribute>
                   <xsl:variable name="var1_instance" select="."/>
                   <IT_ERROR>
                        <item><xsl:for-each select="$var1_instance/n2:AuthorizationResponse/Result/Response/MessageList/Message">
                                  <ERROR_DESC>
                                       <xsl:value-of select="string(.)"/>
                                  </ERROR_DESC>
                             </xsl:for-each>                      </item>
                   </IT_ERROR>
                   <IT_RESPONSE>
                        <item>
                             <xsl:for-each select="$var1_instance/n2:AuthorizationResponse">
                                  <FILEID>
                                       <xsl:value-of select="number(string(Result/Response/FileID))"/>
                                  </FILEID>
                             </xsl:for-each>
                             <xsl:for-each select="$var1_instance/n2:AuthorizationResponse">
                                  <AUTHID>
                                       <xsl:value-of select="number(string(Result/Response/AuthID))"/>
                                  </AUTHID>
                             </xsl:for-each>
                        </item>
                   </IT_RESPONSE>
              </ns1:Z_PA_SAP_TO_CENDANT.Response>
         </xsl:template>
    </xsl:stylesheet>
    Should I make any changes in the file that is created in Mapforce?Please help.
    Thanks,
    Anjana.

  • How to use content conversion for Complex structure

    Hi All,
    I want to know how to use content conversion for the following complex structure:
    Data               
    ...Details            1 to Unbound
    .....Header           1 to 1
    .......HF1
    .......HF2
    .......HF3
    .......ITEM           1 to unbound
    .........ITF1
    .........ITF2
    all are of type string.
    Thanks & Regards,
    Viswanath
    Message was edited by: Viswanath Mente

    Hi,
    In the content conversion,
    give ur
    1.document name as message type
    2.give ur recordstructure as Details,,Header,1,ITEM,
    3.mention ur keyfield.
    conversion parameter
    Header.fieldFixedLength - give the field lengths
    Header.fieldNames=mention all the field name
    Header.keyField=enter the value of keyfield
    Header.endSeparator='nl'
    repeat the same  for Item
    regards
    jithesh

  • Display a complex structure for edit - BUS_EI_EXTERN

    Good day Everyone
    I need to display a complex structure (BUS_EI_EXTERN) to a user in a BSP and allow the user to change one or more required fields of this structure. I thought about using a recersive algorithm to iterate through the structure and display the table names in a tree. When the user clicks on a node (table) they will get a list of all the attributes of the table which they can edit.
    Would this be the 'easiest' route to go?
    I tried to use LVC_FIELDCATALOG_MERGE to get the attributes of the structure, unfortunantly it flattens the structure, any other way i can try and go through the structure?
    I dont suppose there is a nice function module that already does what i want?
    Thank you for all your help.
    Sincerely,
    Marc

    Hi,
    use function DDIF_FIELDINFO_GET to get the information about any structure/table and in its parameter DFIES_TAB you get the data that you need.
    Later you can build your tree with that data.
    Regards

  • RFC:Complex structure

    Dear experts,
    In my PI box,i used one RFC SXMB_GET_MESSAGES.I provided input to the table parameter with over 155 values.
    My attempt was to retrieve from output table parameter which is a deep structure
    If i drill EX_MSG_CONTENT , i get table MSG_VERS_T as one of table output and on further drilling this i get PROP again of type table line.
    <table>EX_MSG_CONTENT_LIST -> <table> MSG_VERS_T ->  <table> PROP
    Ultimately i fetched two fields from table PROP.Only issue is that if i am providing 155 input values i get 36 output values only.
    Further incase i put 222 input values then output values get affected in same ration ex 56 output values and so on..
    What should  i conclude.IS this because RFC (Remote Enabled) doesnot support complex nested structures and i should give up this assignment or may be i need to put something in addition. ?.For those of you familiar with java i am trying something like this
    _ob_c.function.execute(ob_c.destination);    //Problematic as it return less number of rows_
    call function statement:
    ArrayList<PayLoadType> payloads  = new ArrayList<PayLoadType>(fetchmessagepayloads(tableresout)); 
    //Works well as content fetched is actually equal to number of records fetched above.
    public ArrayList<PayLoadType> fetchmessagepayloads (JCoTable tableobj)
    int count = 0;
    ArrayList<PayLoadType> oba = new ArrayList<PayLoadType> ();
    while (count < tableobj.getNumRows()) {
    PayLoadType obj = new PayLoadType();
    JCoTable subtab1  = tableobj.getTable("MSG_VERS_T");
    count = count + 1;
    int rec = subtab1.getNumRows();
    int numrecs = 0;
    while ( numrecs < rec )
    subtab1.nextRow();
    numrecs = numrecs + 1;
    JCoTable subtab2  = subtab1.getTable("TPROP");
    numrecs = 0;
    rec = subtab2.getNumRows();
    while (numrecs < rec )
    numrecs = numrecs + 1;
    if (subtab2.getString("LCNAME").trim().equals("Main")) {
    obj.msgid = subtab2.getString("MSGGUID");
    obj.payload = subtab2.getString("CONTENT");
    oba.add(obj);
    subtab2.nextRow();
    tableobj.nextRow();
    return oba;
    Edited by: aditya  sharma on Aug 16, 2010 10:20 AM

    Hi,
    The problem is basically in message mapping from file to RFC external message.
    The option 2 is working now and I get correct converted file strcuture after FCC and into RFC and also a correct RFC payload.
    However, business is stressing that can send the file in the format as given in Option 1 where u have different structure - Header and Items. This is not coming out correct in RFC payload as the header has 5 fields as compared to more in item but the header and item are still being mapped to the flat RFC structure and this is creating a mismatch. The item line is missing the 5 fields from Header.
    How do i do the FCC in this situation to get the correct structure in RFC?
    This means that in RFC payload, the first line should be the one as below-
    H,100890,P100,A02,S101,AUD#
    The 2 records after this as received in RFC internal table should be as 2 given below-
    I,P,NULL,TH,Test PO TH,1,EA,100,10160000,A002,0001,720090,E.1.4.3,,,,VT#
    I,P,NULL,TH,Test PO TH1 2,2,EA,100,10160000,A002,0001,720090,E.1.4.3,,,,VT#
    However, the 2 structures contain variable field columns.
    Please help.
    Regards,
    Archana

  • Need help in file content conversion complex structure

    Hi Guys ,
    Iam new to this file content conversion , Please let me know whether below requirement is possible .if yes than how ?
    Inbound XML file from Proxy
    <Data>
      <keyfield1>0011</keyfield1>
      <keyfield2>0012</keyfield2>
      <Keyfield3>0013</Keyfield3>
      <field1>Test1</field1>
      <field2>testfield1</field2>
      <field3>0001</field3>
    <Data>
      <keyfield1>0021</keyfield1>
      <keyfield2>0022</keyfield2>
      <Keyfield3>0023</Keyfield3>
      <field1>Test2</field1>
      <field2>testfield2</field2>
      <field3>0002</field3>
    output pgp flat file .
    pgp file format should be as below after file content conversion
      0011|0012|0013|Test1||||||
      0011|0012|0013|Testfield1||||||
      0011|0012|0013|0001||||||
      0021|0022|0023|Test2||||||
      0011|0012|0013|Testfield2||||||
      0011|0012|0013|0002||||||
    thanks a lot .
    Regards
    Prabhu

    Hi.
    Try this.
    First you need to use a message mapping  and create a target structure to convert a similar output  structure that do you want.  like this
    <Target>
    --  Field1
    --  Field2
    --  Field3
    --  Field4
    --  Field5
    --  Field6
    --  Field7
    --  Field8
    --  Field9
    </Target>.
    Then map
    keyfield1-> Field 1 ,keyfield2-> Field 2 , keyfield 3---> Field 3
    map  field1-> field4 .. for the others fields duplicate the Target node (right click)  and  map map  field2-> field5 ..etc.
    For the field 5 until field 9 map with constant ("'')
    Then in you receiver comunication channel put simple parameters. 
    Target.fieldSeparator = |
    Target.endSeparator = 'nl'
    Regards.

  • CE CAF Business Object, Complex Structure and external service...

    Hi,
    I want to use a web service as remote persistence in a CAF business object(Entity service). My Problem is, that the service returns a list of objects. But it seems that in the new CE the paradigm for caf changed a little and instead of complex attributes (an attribute with a structure and cardinality 0...n) you can only create an association with another business object.
    Anybody knows how to bring that together? I want to do something similar like described here:
    <a href="https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/5e9ca25b-0e01-0010-bbaa-f3b963e89edd">https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/5e9ca25b-0e01-0010-bbaa-f3b963e89edd</a>
    But using the new CE the Problem is, that I couldn't manage creating a complex attribute in an Entity which can then be used as mapping for a web service.
    When I create a simple attibute and replace the type with a complex one, i can do the mapping but there is an error: "The business node has an invalid main structure"
    anybody a good idea?
    kind regards and thanks alot
    Alex

    Hi Alexander,
    You are now able to create the Structure and set the cardinality also in NetWeaver CE.  I thin the following steps will be helpful for you.
    1. Create a CAF project called firstcaf.
    2.Create an entity service within the project called Customer.
    3. Now expand modeled.
    4. Then right click on Data Types. Here you will get the option "New Structure".
    5.Now select New Structure, One popup will appear then enter the Structure name called Address and click ok.
    6. Now You will get your Address structure under Complex Types.
    7.Double Click on Address. In right hand side you will get the Address structure for editing.
    8.Now from left hand side(Existing Type) expand caf.core and add your required attribute. In right hand side (structure Field) you can edit the name of attribute. suppose for Address structure I have added two field phone and mobile (both are short text ). save it.
    9. Now switch to Composite Application Explorer and expand Business Objects ->Customer -> Customer->Customer. and double click on it (Customer).
    10. In right hand side expand project firstcaf ->modeled. Now you will get your structure here, In my case I will get Address structure. Now select your structure and  click Add button. Structure will go to right hand side(Structure Fields).
    11. If you want to change the cardinality it is very simple. Select The Structure from right hand side(Structure Fields) and in bottom side click on property. Now you will get the Cardinality field. you can change it as you like.
    Thanks and Regards
    Chandan

  • Oracle database integration with SAP PI for high volume & Complex Structure

    Hi
    We have requirement for integrating oracle database to SAP PI 7.0 for sending data which is eventually transferred to multiple receivers. The involved data structure is hugely complex (around 18 child tables) with high volume processing requirement (100K+ objects need to be processed in 6-7 hours). We need to implement logic for prioritizing the object i.e. high priority objects must be processed first and then objects with normal priority.
    We could think of implementing this kind of logic in database procedures (at least it provides flexibility for implementing data selection logic as well as processed data can be marked as success in the same SP) but since PI sender adapter doesn't support calling Oracle stored procedures currently so this option is rules out. we can try implementing complex data selection using oracle table function but table function doesn't allow any SQL query which changes data (UPDATE, INSERT, DELETE etc) so it is impossible to mark selected objects in table function from PI communication channel "Update Query" option.
    Also, we need to make sure that we are not processing all the objects at once as message size for 20 objects can vary from 100 KB to 15 MB which could really lead to serious performance issues for bigger messages.
    Please share any implementation experience for handling issues:
    1 - Database Integration involving Oracle at sender side
    2 - Complex Data structures
    3 - High Volume Processing
    4 - Controlled data selection from database to contro the message size in PI
    Thanks,
    Panchdev

    Hi,
          We can call the stored procedure using receiver adapter using ccBPM, we can follow different approaches for reading the data in this case.
    a) In this  a ccBPM instance needs to be triggered using some dummy message, after receiving this message the ccBPM can make  a sync call to the Oracle database the store procedure(this can be done using the specific receiver data type strucure), on getting the response message the ccBPM  can then proceed with the further steps.The stored procedure needs to be optimized for improving the performance as the mapping complexity will largely get affected by the structure in which the stored procedure returns the message.Prioritization of the objects can be handled in the stored procedure.
    b) In this a ccBPM instance can first read data from the header level table, then it can make subsequent sync calls to Oracle tables for reading data from the child tables.This approach is less suitable for this interface as the number child tables is big.
    Pravesh.

  • MDX: Forming Complex "Structures" (for lack of a better term)

    I'm trying to create a "structure" that contains (Customer, Date of First Purchase, Date of Last Purchase) where the last 2 items are members from the same dimension attribute. This structure will form the basis of some more complex logic...for
    example, I may have another "structure" containing (Customer, Date of Event1, Date of Event2) that needs to be intersected with the first:
    Intersect(
    Struct1 (Customer, Date of First Purchase, Date of Last Purchase)
    Struct2 (Customer, Date of Event1, Date of Event1)
    One option I'm considering (since a tuple cannot contain multiple members from the same dimension attribute according to
    this article) to create additional date dimensions with the same relationship to the fact tables and use LINKMEMBER.
    Another option would be to create a set consisting of 2 tuples for each customer:
    (Customer A, Date of First Purchase),(Customer A, Date of Last Purchase),
    (Customer B, Date of First Purchase),(Customer B, Date of Last Purchase),
    ...and then using some FILTER/GENERATE logic to work through the remaining logic...but I'm not convinced this would be any easier than simply maintaining 2 separate sets:
    (Customer A, Date of First Purchase),
    (Customer B, Date of First Purchase),
    (Customer A, Date of Last Purchase),
    (Customer B, Date of Last Purchase),
    Any suggestions/recommendations?
    Is my approach way off?
    BI Developer and lover of data (Blog |
    Twitter)

    hi,
    another idea: take the same attributes from different hierarchies , make  pseudo hierarchies if needed.
    Philip,
    thanks - that is also a good idea. However, and just like with the option of creating extra role-playing date dimensions, the drawback is that it isn't "dynamic" - I would need to know ahead of time the max number of possible members from the dimension attribute
    to include. 
    I'm essentially trying to implement complex temporal logic dealing with events in time...and while so far I've only seen the need to have 4 members from the same dimension attribute in a "structure" future requirements may call for more than that.
    BI Developer and lover of data (Blog |
    Twitter)

  • Traversing a complex structure

    Good day Everyone,
    I have been tasked with displaying the BUS_EI_EXTERN object on the screen (BSP PAGE) and allowing the user to edit any fields inside the structure. BUS_EI_EXTERN is extremely complex with tables within tables within tables and structures with tables within structures, you get the point, its a monster.
    My solution so far has successfully conquered the structures within structures problem, i display a tree view on the left side of the screen, the user clicks a node and i display the fields inside that node, the user edits them and i save it.
    The problem is Tables, once the user selects a row i need to use that row, show its structure in a tree. if there happens to be another tree i now have to remember 2 rows, and so it goes on.
    Could someone please answer the following questions:
    1) If i use Data References, does this mean any changes to the data reference will also filter back to the origornal object. For example, Lets assume Table1 exists inside BUS_EI, If i assign Row 5 of Table1 to DataRef DR1 and i change DR1 will that also change Row 5 of table1 inside BUS_EI?
    2) Is there any way at runtime for me to get the name of a structure, espcialy if it has been assigned to a data reference? The reson i need this is i use a function module DD_GET_DD03P to build up my tree.
    If you need any clarification please ask and i will explain further.
    Thank you.
    Marc

    Good day Everyone,
    I have been tasked with displaying the BUS_EI_EXTERN object on the screen (BSP PAGE) and allowing the user to edit any fields inside the structure. BUS_EI_EXTERN is extremely complex with tables within tables within tables and structures with tables within structures, you get the point, its a monster.
    My solution so far has successfully conquered the structures within structures problem, i display a tree view on the left side of the screen, the user clicks a node and i display the fields inside that node, the user edits them and i save it.
    The problem is Tables, once the user selects a row i need to use that row, show its structure in a tree. if there happens to be another tree i now have to remember 2 rows, and so it goes on.
    Could someone please answer the following questions:
    1) If i use Data References, does this mean any changes to the data reference will also filter back to the origornal object. For example, Lets assume Table1 exists inside BUS_EI, If i assign Row 5 of Table1 to DataRef DR1 and i change DR1 will that also change Row 5 of table1 inside BUS_EI?
    2) Is there any way at runtime for me to get the name of a structure, espcialy if it has been assigned to a data reference? The reson i need this is i use a function module DD_GET_DD03P to build up my tree.
    If you need any clarification please ask and i will explain further.
    Thank you.
    Marc

  • Sender File adapter complex structure FCC issue - flat structure RFC-stuck

    Hi,
    Please help.
    I have a the below file structres-
    Option 1-
    H,100890,P100,A02,S101,AUD#
    I,P,NULL,TH,Test PO TH,1,EA,100,10160000,A002,0001,720090,E.1.4.3,,,,VT#
    I,P,NULL,TH,Test PO TH1 2,2,EA,100,10160000,A002,0001,720090,E.1.4.3,,,,VT#
    H,100899,P100,A02,S101,GBP#
    I,P,NULL,AS,Test PO AS1,1,EA,100,10160000,A002,0001,720090,E.1.4.2,,,,VT#
    I,P,NULL,AS,Test PO AS12,2,EA,100,10160000,A002,0001,720090,E.1.4.2,,,,VT#
    I need to map this into a Z RFC which is expecting all the data in one row - of course multiple rows
    Option 2-
    Same structure as above but all in same row-
    H,100890,P100,A02,S101,AUD,P,NULL,TH,Test PO TH,1,EA,100,10160000,A002,0001,720090,E.1.4.3,,,,VT#
    I,100890,P100,A02,S101,AUD,P,NULL,TH,Test PO TH,1,EA,100,10160000,A002,0001,720090,E.1.4.3,,,,VT#
    I,100890,P100,A02,S101,AUD,P,NULL,TH,Test PO TH1 2,2,EA,100,10160000,A002,0001,720090,E.1.4.3,,,,VT#
    H,100899,P100,A02,S101,GBP,P,NULL,AS,Test PO AS1,1,EA,100,10160000,A002,0001,720090,E.1.4.2,,,,VT#
    I,100899,P100,A02,S101,GBP,P,NULL,AS,Test PO AS1,1,EA,100,10160000,A002,0001,720090,E.1.4.2,,,,VT#
    I,100899,P100,A02,S101,GBP,P,NULL,AS,Test PO AS12,2,EA,100,10160000,A002,0001,720090,E.1.4.2,,,,VT
    This also needs to be mapped into a Z RFC which is expecting all the data in one row - of course multiple rows
    I am getting issues in getting the file data across to Receiver adapter.
    I have tried various combinations but the message is failing in SXMB_MONI.
    How do i do it as i need to get the finalised option for incoming file structure?
    Option 1 is being stressed but how do i map it if i cannot get the receiver structure in RFC.
    Please help as I am stuck now.
    Regards,
    Archana

    Hi,
    The problem is basically in message mapping from file to RFC external message.
    The option 2 is working now and I get correct converted file strcuture after FCC and into RFC and also a correct RFC payload.
    However, business is stressing that can send the file in the format as given in Option 1 where u have different structure - Header and Items. This is not coming out correct in RFC payload as the header has 5 fields as compared to more in item but the header and item are still being mapped to the flat RFC structure and this is creating a mismatch. The item line is missing the 5 fields from Header.
    How do i do the FCC in this situation to get the correct structure in RFC?
    This means that in RFC payload, the first line should be the one as below-
    H,100890,P100,A02,S101,AUD#
    The 2 records after this as received in RFC internal table should be as 2 given below-
    I,P,NULL,TH,Test PO TH,1,EA,100,10160000,A002,0001,720090,E.1.4.3,,,,VT#
    I,P,NULL,TH,Test PO TH1 2,2,EA,100,10160000,A002,0001,720090,E.1.4.3,,,,VT#
    However, the 2 structures contain variable field columns.
    Please help.
    Regards,
    Archana

  • Java user-defined function for mapping a complex structure

    All,
    Hope one of you can help me with this. I have a structure with over 15 fields and would like to concatenate all the fields into one target field and while I do this, I need to ensure that each field is padded with blanks as defined the data type. Can one of tell me if this is possible with a java user-defined function and if so, what type of logic is needed.
    Input_MT
    Field_1  string len=10 "need"
    Field_2  string len=6 "java"
    Field_3  string len=7 "help"
    Field_4  string len=8  "asap"
    etc,
    Output_MT 
    DataOut string  "need      java  help   asap    "
    (for some reason the exact spaces in between the words disappear in my Preview message)
    I have several fields in the input mt and therefore I find graphical mapping using concatenate and my own user defined function padWithSpace too messy.
    Thank you for you help.

    Hi,
    If your final req is to write all these fields next each other in a file, you can configure this in receiver file adapter by specifying the fixed length for each field.
    If you want the padded string as your MM o/p, you can create a simple user defined funtion with 15 fields as input and 15 constants for their lengths, and find out the length of the each string and pad it with required no of spaces.
    int max_len = 10;
    int actual_len;
    actual_len = a.lengh();
    for(int i=0; i < (max_len-actual_len; i++)
    a = a.append(" ");
    return a;
    praveen

Maybe you are looking for