Lookup API - SPRAS value returned is not correct

Hi All
We are using the lookup API of XI to make a lookup in the SAP system and return values such as LAND1, and SPRAS. SPRAS has 2 kindoff value, one is the display value which is a 2 character value, and then the actual value which is a single character value. Internally a conversion routine takes care of converting this 2 character value to single character. For instance the countrykey of Poland is PL and its display SPRAS value is PL and actual value is L.
While unit testing we get the correct value of 'L', but when we do the integration testing we get the display value of 'PL'. This is a problem we face when we use the Lookup API. But when I use a JCO call to make a lookup, I get the correct value being returned.
This is a weird behavior, I am not sure if I overlooked something while using the lookup API. I even tried changing the function module to return a single char value, but still the wrong value is being returned with the lookup API. Could it be an issue with the Lookup API ??
I used the code given in the following weblog,
/people/francesco.bersani/blog/2007/03/05/data-lookup-optimized
Any suggestion friends.
regards
Sameer

Sameer,
Using a single Function Module should not be an issue at all.
Maybe there is some problem with,
A) Either the logic of the Function Module written in R3
B) Logic of your LookUp Code.
It would be very difficult to say why you are facing this issue without looking at the code and the RFC but the way I see look up's if the FM code is valid and the Lookup Code is as per the corresponding Logic there should be no issue at all.
I would suggest that you use the same test data that is causing the issue to test the FM in your R3 system and check what it returns . Is the output as expected. If yes, then time to look into your LookUP code.
Add Trace statements and use this for debugging. Have found that they really help in real time to understand what is going wrong and why.
Regards
Bhavesh
PS : Thanks for those encouraging words . It is also nice to see detailed questions on SDN that make life easy for everyone.

Similar Messages

  • BO4 Return results not correct in OpenDoc in Rich Internet Application mode

    My launchPad is in Rich Internet Application.  I try to run the below link
    http://localhost:8080/BOE/OpenDocument/opendoc/openDocument.jsp?sIDType=CUID&iDocID=AbdUKNEucmNHo7elH5giFeo&lsMConglomerate=MAYBANK+GROUP
    but the results is wrong.  When I switch my Interactive Analysis Mode to Web, then results is correct where the reports return data with Maybank Group.  I must use Rich Internet Application because I am also doing cascading prompt.  In Web mode, the cascade prompt did not dim and sometimes the LOV cannot refresh.  But in Rich Internet Application, the cascade prompt is perfect.  Please advise on the opendocument.  Thanks.

    My launchPad is in Rich Internet Application.  I try to run the below link
    http://localhost:8080/BOE/OpenDocument/opendoc/openDocument.jsp?sIDType=CUID&iDocID=AbdUKNEucmNHo7elH5giFeo&lsMConglomerate=MAYBANK+GROUP
    but the results is wrong.  When I switch my Interactive Analysis Mode to Web, then results is correct where the reports return data with Maybank Group.  I must use Rich Internet Application because I am also doing cascading prompt.  In Web mode, the cascade prompt did not dim and sometimes the LOV cannot refresh.  But in Rich Internet Application, the cascade prompt is perfect.  Please advise on the opendocument.  Thanks.

  • Management API - Create VM - InvalidXmlRequest - The request body XML was invalid or not correctly specified

    Hi,
    I am getting error while creating virtual machine from Azure REST management API. Could someone please point me what wrong I am POSTing in below XML
    ERROR ---
    <Error xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><Code>InvalidXmlRequest</Code><Message>The request body's XML was invalid or not correctly specified.</Message></Error>
    " <Deployment xmlns=\"http://schemas.microsoft.com/windowsazure\" xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\">" +
    " <Name>SomeName</Name>" +
    " <DeploymentSlot>Production</DeploymentSlot>" +
    " <Label>SomeLabel</Label>" +
    " <RoleList>" +
    " <Role>" +
    " <RoleName>SomeRoleName</RoleName>" +
    " <RoleType>PersistentVMRole</RoleType>" +
    " <ConfigurationSets>" +
    " <ConfigurationSet i:type=\"WindowsProvisioningConfigurationSet\">" +
    " <ConfigurationSetType>WindowsProvisioningConfiguration</ConfigurationSetType>" +
    " <ComputerName>SomeCompName</ComputerName>" +
    " <AdminPassword>Admin098</AdminPassword>" +
    " <EnableAutomaticUpdates>true</EnableAutomaticUpdates>" +
    " <ResetPasswordOnFirstLogon>false</ResetPasswordOnFirstLogon>" +
    " </ConfigurationSet>" +
    " <ConfigurationSet i:type=\"NetworkConfigurationSet\">" +
    " <ConfigurationSetType>NetworkConfiguration</ConfigurationSetType>" +
    " <InputEndpoints>" +
    " <InputEndpoint>" +
    " <LocalPort>3389</LocalPort>" +
    " <Name>RemoteDesktop</Name>" +
    " <Protocol>tcp</Protocol>" +
    " </InputEndpoint>" +
    " </InputEndpoints>" +
    " </ConfigurationSet>" +
    " </ConfigurationSets>" +
    " <OSVirtualHardDisk>" +
    " <DiskName>SomeDiskName-0-20121007173943</DiskName>" +
    " <MediaLink>http://portalvhdsrx7q659n2n5j2.blob.core.windows.net/public/myvhd0008980.vhd</MediaLink>" +
    " <SourceImageName>MSFT__Win2K8R2SP1-Datacenter-201208.01-en.us-30GB.vhd</SourceImageName>" +
    " </OSVirtualHardDisk>" +
    " <RoleSize>Small</RoleSize>" +
    " </Role>" +
    " </RoleList>" +
    " </Deployment>"I have tried adding admin user name as well to the xml but still get same error.Please suggest

    the format of the request body is:
    <Deployment xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
    <Name>name-of-deployment</Name>
    <DeploymentSlot>deployment-environment</DeploymentSlot>
    <Label>identifier-of-deployment</Label>
    <RoleList>
    <Role>
    <RoleName>name-of-the-virtual-machine</RoleName>
    <RoleType>PersistentVMRole</RoleType>
    <VMImageName>name-of-vm-image</VMImageName>
    <ConfigurationSets>
    <ConfigurationSet i:type="WindowsProvisioningConfigurationSet">
    <ConfigurationSetType>WindowsProvisioningConfiguration</ConfigurationSetType>
    <ComputerName>name-of-computer</ComputerName>
    <AdminPassword>administrator-password</AdminPassword>
    <EnableAutomaticUpdates>enable-updates</EnableAutomaticUpdates>
    <TimeZone>time-zone</TimeZone>
    <DomainJoin>
    <Credentials>
    <Domain>domain-to-join</Domain>
    <Username>user-name-in-the-domain</Username>
    <Password>password-for-the-user-name</Password>
    </Credentials>
    <JoinDomain>domain-to-join</JoinDomain>
    <MachineObjectOU>distinguished-name-of-the-ou</MachineObjectOU>
    </DomainJoin>
    <StoredCertificateSettings>
    <CertificateSetting>
    <StoreLocation>LocalMachine</StoreLocation>
    <StoreName>name-of-store-on-the-machine</StoreName>
    <Thumbprint>certificate-thumbprint</Thumbprint>
    </CertificateSetting>
    </StoredCertificateSettings>
    <WinRM>
    <Listeners>
    <Listener>
    <Protocol>listener-protocol</Protocol>
    </Listener>
    <Listener>
    <CertificateThumbprint>certificate-thumbprint</CertificateThumbprint>
    <Protocol>listener-protocol</Protocol>
    </Listener>
    </Listeners>
    </WinRM>
    <AdminUsername>name-of-administrator-account</AdminUsername>
    <CustomData>base-64-encoded-data</CustomData>
    </ConfigurationSet>
    <ConfigurationSet i:type="LinuxProvisioningConfigurationSet">
    <ConfigurationSetType>LinuxProvisioningConfiguration</ConfigurationSetType>
    <HostName>host-name-for-the-virtual-machine</HostName>
    <UserName>new-user-name</UserName>
    <UserPassword>password-for-the-new-user</UserPassword>
    <DisableSshPasswordAuthentication>password-authentication</DisableSshPasswordAuthentication>
    <SSH>
    <PublicKeys>
    <PublicKey>
    <FingerPrint>certificate-fingerprint</FingerPrint>
    <Path>SSH-public-key-storage-location</Path>
    </PublicKey>
    </PublicKeys>
    <KeyPairs>
    <KeyPair>
    <FingerPrint>certificate-fingerprint</FinguerPrint>
    <Path>SSH-public-key-storage-location</Path>
    </KeyPair>
    </KeyPairs>
    </SSH>
    <CustomData>base-64-encoded-data</CustomData>
    </ConfigurationSet>
    <ConfigurationSet>
    <ConfigurationSetType>NetworkConfiguration</ConfigurationSetType>
    <InputEndpoints>
    <InputEndpoint>
    <LoadBalancedEndpointSetName>name-of-load-balanced-set</LoadBalancedEndpointSetName>
    <LocalPort>local-port-number</LocalPort>
    <Name>name-of-endpoint</Name>
    <Port>external-port-number</Port>
    <LoadBalancerProbe>
    <Path>path-of-probe</Path>
    <Port>port-assigned-to-probe</Port>
    <Protocol>probe-protocol</Protocol>
    <IntervalInSeconds>interval-of-probe</IntervalInSeconds>
    <TimeoutInSeconds>timeout-for-probe</TimeoutInSeconds>
    </LoadBalancerProbe>
    <Protocol>endpoint-protocol</Protocol>
    <EnableDirectServerReturn>enable-direct-server-return</EnableDirectServerReturn>
    <EndpointACL>
    <Rules>
    <Rule>
    <Order>priority-of-the-rule</Order>
    <Action>permit-rule</Action>
    <RemoteSubnet>subnet-of-the-rule</RemoteSubnet>
    <Description>description-of-the-rule</Description>
    </Rule>
    </Rules>
    </EndpointACL>
    </InputEndpoint>
    </InputEndpoints>
    <SubnetNames>
    <SubnetName>name-of-subnet</SubnetName>
    </SubnetNames>
    <StaticVirtualNetworkIPAddress>ip-address</StaticVirtualNetworkIPAddress>
    </ConfigurationSet>
    </ConfigurationSets>
    <ResourceExtensionReferences>
    <ResourceExtensionReference>
    <ReferenceName>name-of-reference</ReferenceName>
    <Publisher>name-of-publisher</Publisher>
    <Name>name-of-extension</Name>
    <Version>version-of-extension</Version>
    <ResourceExtensionParameterValues>
    <ResourceExtensionParameterValue>
    <Key>name-of-parameter-key</Key>
    <Value>parameter-value</Value>
    <Type>type-of-parameter</Type>
    </ResourceExtensionParameterValue>
    </ResourceExtensionParameterValues>
    <State>state-of-resource</State>
    </ResourceExtensionReference>
    </ResourceExtensionReferences>
    <AvailabilitySetName>name-of-availability-set</AvailabilitySetName>
    <DataVirtualHardDisks>
    <DataVirtualHardDisk>
    <HostCaching>caching-mode</HostCaching>
    <DiskLabel>label-of-data-disk</DiskLabel>
    <DiskName>name-of-disk</DiskName>
    <Lun>logical-unit-number</Lun>
    <LogicalDiskSizeInGB>size-in-gb-of-data-disk</LogicalDiskSizeInGB>
    <MediaLink>path-to-vhd</MediaLink>
    </DataVirtualHardDisk>
    </DataVirtualHardDisks>
    <OSVirtualHardDisk>
    <HostCaching>caching-mode</HostCaching>
    <DiskLabel>label-of-operating-system-disk</DiskLabel>
    <DiskName>name-of-disk</DiskName>
    <MediaLink>path-to-vhd</MediaLink>
    <SourceImageName>name-of-source-image</SourceImageName>
    </OSVirtualHardDisk>
    <RoleSize>size-of-virtual-machine</RoleSize>
    <ProvisionGuestAgent>install-an-agent</ProvisionGuestAgent>
    </Role>
    </RoleList>
    <VirtualNetworkName>name-of-virtual-network</VirtualNetworkName>
    <Dns>
    <DnsServers>
    <DnsServer>
    <Name>dns-name</Name>
    <Address>dns-ip-address</Address>
    </DnsServer>
    </DnsServers>
    </Dns>
    </Deployment>
    for more details please see
    this link.
    hope this helps!

  • Value mapping performance using LookUp API

    All,
    We are using Value mapping look up from an external table using JDBC adapter and Lookup API. The scenario works good, but the performance is a hit for us as it is taking 7 seconds for the first step and the subsequent steps are taking much longer. In the performance header it shows that the steps "DB ENTRY QUEUING" and "DB SPLITTER QUEUING" are taking 90% of the time even though mapping execution is real quick.
    We tried the below things which did not help us analyze or isolate the problem.
    1. We increased the number of dialog processes from 3 to 8. (Optimal value should be 5)
    2. We tested the scenario using Value mapping in ID instead of external table. But it is almost taking the same time in the above two steps mentioned.
    I would like to know whether any kind of configuration settings to be done on the server like "specifying connection pool capabilities" etc...
    Any pointers would be really appreciated.
    Thanks and Regards,
    GP

    Hi,
    Have you seen this weblogs by Prasad recently:
    /people/prasad.illapani/blog/2007/03/08/performance-tuning-checks-in-sap-exchange-infrastructure
    /people/prasad.illapani/blog/2007/04/20/performance-tuning-checks-in-sap-exchange-infrastructurexi-part-ii
    Also are you doing multiple lookups or a single lookup? If you are using multiple lookup for multiple fields which has the same logic then try to use global variables.
    ---Satish

  • Insert Value(s) in Lookup Flat Multi-valued Table with Java API

    I've been looking in MDM Java API Library Reference Guide, MDM SP4 API JavaDoc, and SDN Forums for information on how to Insert/Update different values in a field in the Main Table of a given repository that belongs to a Lookup Flat Multi-valued Table using the Java API with no success.
    I also haven't been successful in adding this values in the same way that I'll add a single value, using the MDM Java API, in a single-value Lookup Table (a2iFields.Add(new A2iField(FIELD_CODE,FIELD_VALUE)) for each value I want to add, like for example:
    a2iFields.Add(new A2iField("Country","USA")
    a2iFields.Add(new A2iField("Country","Mexico")
    a2iFields.Add(new A2iField("Country","Germany")
    Can anybody point me to the correct documentation that I need to read to fulfill this task? Or, even better, if someone can post a piece of code, I'll be more thankful.
    Thanks for your help.

    HI,
    little code example, where you add existing lookup values based on there record id:
         int USA = 1;
                        int GERMANY = 2;
                        A2iValueArray countryArray = new A2iValueArray();               
                        countryArray.Add(new Value(USA));
                        countryArray.Add(new Value(GERMANY));
                        A2iFields record = new A2iFields();
                        record.Add(new A2iField("Country", new Value(countryArray)));
    Please reward points if helpful.
    Regards,
    Robert

  • The value returned from the load function is not of type numeric  errors after migration to Coldfusion 11

    I am currently testing our website with CF11. It is currently working with CF8 however after migrating it to a new server running CF11 I have encountered the following error.
    The value returned from the load function is not of type numeric.
    The error occurred in
    D:/Applications/CFusion/CustomTags/nec/com/objects/address.cfc: line 263
    Called from D:/Applications/CFusion/CustomTags/nec/com/objects/contact.cfc: line 331
    Called from D:/Applications/CFusion/CustomTags/nec/com/objects/user.cfc: line 510
    Called from D:/Applications/CFusion/CustomTags/nec/com/objects/user.cfc: line 1675
    Called from D:/website/NECPhase2/action.validate.cfm: line 54
    261 : <cfif isNumeric(get.idCountry)>
    262 : <cfset rc = this.objCountry.setID(get.idCountry)>
    263 : <cfset rc = this.objCountry.load()>
    264 : </cfif>
    265 : <cfset this.sPostcode = get.sPostcode>
    Have there been any changes between CF8 and CF11 that could  cause this error?
    Does anyone have ideas?

    This is the code in file object file country.cfc (nec.com.objects.country):
    <cfcomponent displayname="Country object" hint="This is a Country object, it allows you to access and set values in the Country.">
    <!---
    // Construct this object
    --->
    <cfset this.objFunctions = CreateObject( 'component', 'nec.com.system.functions' )>
    <cfscript>
      this.idCountryID = 0;
      this.sCountryName = "";
      this.sISOCode = "";
      this.sDHLCode = "";
      this.iErrorID = "";
    </cfscript>
    <!---
    // The following functions are the setters and getters. offering us a better way to get
    // at the contents of the object
    --->
    <!---
    // Getters
    --->
    <cffunction name="getID" displayname="Get ID" returntype="numeric" output="false" hint="This returns the ID of the current item.">
      <cfreturn this.idCountryID>
    </cffunction>
    <cffunction name="getsCountryName" displayname="Get sCountryName" returntype="string" output="false" hint="This gets the sCountryName value of this item.">
      <cfreturn this.sCountryName>
    </cffunction>
    <cffunction name="getsISOCode" displayname="Get sISOCode" returntype="string" output="false" hint="This gets the sISOCode value of this item.">
      <cfreturn this.sISOCode>
    </cffunction>
    <cffunction name="getsDHLCode" displayname="Get sDHLCode" returntype="string" output="false" hint="This gets the sDHLCode value of this item.">
      <cfreturn this.sDHLCode>
    </cffunction>
    <cffunction name="iError" displayname="Get iError" returntype="numeric" output="false" hint="This returns the iError of the current item.">
      <cfreturn this.iError>
    </cffunction>
    <!---
    // Setters
    --->
    <cffunction name="setID" displayname="Set ID" returntype="boolean" output="false" hint="This sets the ID value of this item.">
      <cfargument name="idCountryID" required="true" type="numeric" displayname="ID" hint="The ID to use.">
      <cfset this.idCountryID = arguments.idCountryID>
      <cfreturn true>
    </cffunction>
    <cffunction name="setsCountryName" displayname="Set sCountryName" returntype="boolean" output="false" hint="This sets the sCountryName value of this item.">
      <cfargument name="sCountryName" required="true" type="string" displayname="sCountryName" hint="The sCountryName to use.">
      <cfset this.sCountryName = arguments.sCountryName>
      <cfreturn true>
    </cffunction>
    <cffunction name="setsISOCode" displayname="Set sISOCode" returntype="boolean" output="false" hint="This sets the sISOCode value of this item.">
      <cfargument name="sISOCode" required="true" type="string" displayname="sISOCode" hint="The sISOCode to use.">
      <cfset this.sISOCode = arguments.sISOCode>
      <cfreturn true>
    </cffunction>
    <cffunction name="setsDHLCode" displayname="Set sDHLCode" returntype="boolean" output="false" hint="This sets the sDHLCode value of this item.">
      <cfargument name="sDHLCode" required="true" type="string" displayname="sDHLCode" hint="The sDHLCode to use.">
      <cfset this.sDHLCode = arguments.sDHLCode>
      <cfreturn true>
    </cffunction>
    <!---
    // Clear, to empty out the contents of this object
    --->
    <cffunction name="clear" displayname="Clear items Details" returntype="boolean" output="false" hint="Clears out all of the items details.">
      <cfscript>
       this.sCountryName = "";
       this.sISOCode = "";
       this.sDHLCode = "";
       this.iErrorID = "";
      </cfscript>
      <cfreturn true>
    </cffunction>
    <!---
    // The following functions deal with the load, save and deleting of objects
    --->
    <!---
    // Load
    --->
    <cffunction name="load" displayname="Load items details" returntype="numeric" output="false" hint="This loads in all the information about an item.">
      <cfset rc = this.clear()>
      <!---
      // First of all we need to get the name of the data source we are going to be using
      --->
      <cfscript>
      objDS = CreateObject("component","nec.com.system.settings");
      sDatasource = objDS.getDatasource();
    </cfscript>
      <!---
      // Check to see if it exists
      --->
      <cftry>
       <cfquery name="checkID" datasource="#sDatasource#">
        SELECT idCountryID
        FROM tblCountry
        WHERE idCountryID = #this.idCountryID#
       </cfquery>
       <cfcatch>
        <cfscript>
         objError = CreateObject("component","nec.com.system.errors");
         iErrorID = objError.addError("load: checkID: '#this.idCountryID#' #cfcatch.detail#");
        </cfscript>
        <cfset this.iErrorID = iErrorID>
        <cfreturn iErrorID>
       </cfcatch>
      </cftry>
      <cfif not checkID.recordCount>
       <cfscript>
         objError = CreateObject("component","nec.com.system.errors");
         if(isDefined("session.afr")){
          whichOne = "#session.afr.getsAFRNumber()#";
         } else {
          whichOne = "";
         iErrorID = objError.addError("A Country with that id doesn't exists.[#this.idCountryID#][#whichOne#]");
        </cfscript>
       <cfset this.iErrorID = iErrorID>
       <cfreturn iErrorID>
      </cfif>
      <!---
      // If we got past all then then load in the details
      --->
      <cftry>
       <cfquery name="get" datasource="#sDatasource#">
        SELECT idCountryID, RTRIM(sCountryName) as sCountryName, RTRIM(sISOCode) as sISOCode, RTRIM(sDHLCode) as sDHLCode
        FROM tblCountry
        WHERE idCountryID = #this.idCountryID#
       </cfquery>
       <cfcatch>
        <cfscript>
         objError = CreateObject("component","nec.com.system.errors");
         iErrorID = objError.addError("load: get: #cfcatch.detail#");
        </cfscript>
        <cfset this.iErrorID = iErrorID>
        <cfreturn iErrorID>
       </cfcatch>
      </cftry>
      <cfset this.idCountryID = get.idCountryID>
      <cfset this.sCountryName = get.sCountryName>
      <cfset this.sISOCode = get.sISOCode>
      <cfset this.sDHLCode = get.sDHLCode>
      <cfset this.iErrorID = "">
      <cfreturn true>
    </cffunction>
    <!---
    // Save
    --->
    <cffunction name="save" displayname="Save items Details" returntype="numeric" output="false" hint="Saves (to some source) the current details for the ID of the item.">
      <!---
      // First of all we need to get the name of the data source we are going to be using
      --->
      <cfscript>
      objDS = CreateObject("component","nec.com.system.settings");
      sDatasource = objDS.getDatasource();
    </cfscript>
      <!---
      // Now check to see if ithat ID exists
      --->
      <cftry>
       <cfquery name="checkID" datasource="#sDatasource#">
        SELECT idCountryID
        FROM tblCountry
        WHERE idCountryID = #this.idCountryID#
       </cfquery>
       <cfcatch>
        <cfscript>
         objError = CreateObject("component","nec.com.system.errors");
         iErrorID = objError.addError("save: checkID: #cfcatch.detail#");
        </cfscript>
        <cfreturn iErrorID>
       </cfcatch>
      </cftry>
      <!---
      // If it doesn't exist, then add the record, otherwise update the record
      --->
      <cfif not checkID.recordCount>
       <cfreturn this.add()>
      <cfelse>
       <cfreturn this.update()>
      </cfif>
    </cffunction>
    <!---
    // Add
    --->
    <cffunction name="add" displayname="Add Country" returntype="numeric" output="false" hint="This adds a Country.">
      <!---
      // Check to see if that a different item isn't already using the same unique details
      --->
      <cftry>
       <cfquery name="checkUnique" datasource="#sDatasource#">
        SELECT idCountryID
        FROM tblCountry
        WHERE sCountryName = '#this.objFunctions.scrubText(this.sCountryName)#'
        OR sISOCOde = '#this.objFunctions.scrubText(this.sISOcode)#'
       </cfquery>
       <cfcatch>
        <cfscript>
         objError = CreateObject("component","nec.com.system.errors");
         iErrorID = objError.addError("add: checkUnique: #cfcatch.detail#");
        </cfscript>
        <cfreturn iErrorID>
       </cfcatch>
      </cftry>
      <cfif checkUnique.recordCount>
       <cfscript>
         objError = CreateObject("component","nec.com.system.errors");
         iErrorID = objError.addError("A Country with that name or ISO code already exists. idCountryID=#checkUnique.idCountryID#");
        </cfscript>
       <cfreturn iErrorID>
      </cfif>
      <cftry>
       <cfquery name="add" datasource="#sDatasource#">
        SET nocount on
        INSERT INTO tblCountry(sCountryName, sISOCode, sDHLCode)
        VALUES('#this.objFunctions.scrubText(this.sCountryName)#','#this.objFunctions.scrubText(t his.sISOCode)#','#this.objFunctions.scrubText(this.sDHLCode)#')
        SELECT @@identity as autoID
        SET nocount off  
       </cfquery>
       <cfcatch>
        <cfscript>
         objError = CreateObject("component","nec.com.system.errors");
         iErrorID = objError.addError("add: add: #cfcatch.detail#");
        </cfscript>
        <cfreturn iErrorID>
       </cfcatch>
      </cftry>
      <cfreturn add.autoID>
    </cffunction>
    <!---
    // Update
    --->
    <cffunction name="update" displayname="Update Country" returntype="numeric" output="false" hint="This updates a Country record.">
      <!---
      // Check to see if that a different item isn't already using the same unique details
      --->
      <cftry>
       <cfquery name="checkUnique" datasource="#sDatasource#">
        SELECT idCountryID
        FROM tblCountry
        WHERE (sCountryName = '#this.objFunctions.scrubText(this.sCountryName)#'
        OR sISOCOde = '#this.objFunctions.scrubText(this.sISOcode)#')
        AND idCountryID <> #this.idCountryID#
       </cfquery>
       <cfcatch>
        <cfscript>
         objError = CreateObject("component","nec.com.system.errors");
         iErrorID = objError.addError("update: checkUnique: #cfcatch.detail#");
        </cfscript>
        <cfreturn iErrorID>
       </cfcatch>
      </cftry>
      <cfif checkUnique.recordCount>
       <cfscript>
         objError = CreateObject("component","nec.com.system.errors");
         iErrorID = objError.addError("Another Country with that name already exists. idCountryID=#checkUnique.idCountryID#");
        </cfscript>
       <cfreturn iErrorID>
      </cfif>
      <!---
      // Attempt to update the record to the datasource
      // if this fails for any reason then we submit an error message
      // to the error component and return the ID of the error
      --->
      <cftry>
       <cfquery name="update" datasource="#sDatasource#">
        UPDATE tblCountry
        SET sCountryName = '#this.objFunctions.scrubText(this.sCountryName)#',
        sISOCode = '#this.objFunctions.scrubText(this.sISOCode)#',
        sDHLCode = '#this.objFunctions.scrubText(this.sDHLCode)#'
        WHERE idCountryID = #this.idCountryID#
       </cfquery>
       <cfcatch>
        <cfscript>
         objError = CreateObject("component","nec.com.system.errors");
         iErrorID = objError.addError("update: update: #cfcatch.detail#");
        </cfscript>
        <cfreturn iErrorID>
       </cfcatch>
      </cftry>
      <cfreturn this.idCountryID> 
    </cffunction>
    <!---
    // Delete
    --->
    <cffunction name="delete" displayname="Delete Country" returntype="numeric" output="false" hint="This deletes a Country record.">
      <!---
      // First of all we need to get the name of the data source we are going to be using
      --->
      <cfscript>
      objDS = CreateObject("component","nec.com.system.settings");
      sDatasource = objDS.getDatasource();
    </cfscript>
      <!---
      // Now check to see if ithat ID exists
      --->
      <cftry>
       <cfquery name="checkID" datasource="#sDatasource#">
        SELECT idCountryID
        FROM tblCountry
        WHERE idCountryID = #this.idCountryID#
       </cfquery>
       <cfcatch>
        <cfscript>
         objError = CreateObject("component","nec.com.system.errors");
         iErrorID = objError.addError("delete: checkID: #cfcatch.detail#");
        </cfscript>
        <cfreturn iErrorID>
       </cfcatch>
      </cftry>
      <cfif not checkID.recordCount>
       <cfscript>
         objError = CreateObject("component","nec.com.system.errors");
         iErrorID = objError.addError("A Country with that id doesn't exists, delete failed.");
        </cfscript>
       <cfreturn iErrorID>
      </cfif>
      <!---
      // Now check to see if there are any dependancies, if so we can't delete the item
      --->
      <cftry>
       <cfquery name="checkDependancies" datasource="#sDatasource#">
        SELECT idCountry
        FROM tblAddress
        WHERE idCountry = #this.idCountryID#
       </cfquery>
       <cfcatch>
        <cfscript>
         objError = CreateObject("component","nec.com.system.errors");
         iErrorID = objError.addError("delete: checkDependancies: idCountry: #cfcatch.detail#");
        </cfscript>
        <cfreturn iErrorID>
       </cfcatch>
      </cftry>
      <cfif checkDependancies.recordCount>
       <cfscript>
         objError = CreateObject("component","nec.com.system.errors");
         iErrorID = objError.addError("That Country is being used by an address, delete failed.");
        </cfscript>
       <cfreturn iErrorID>
      </cfif>
      <!---
      // Now attempt to remove the record.
      // if this fails for any reason then we submit an error message
      // to the error component and return the ID of the error
      --->
      <cftry>
       <cfquery name="delete" datasource="#sDatasource#">
        DELETE FROM tblCountry
        WHERE idCountryID = #this.idCountryID#
       </cfquery>
       <cfcatch>
        <cfscript>
         objError = CreateObject("component","nec.com.system.errors");
         iErrorID = objError.addError("delete: delete: #cfcatch.detail#");
        </cfscript>
        <cfreturn iErrorID>
       </cfcatch>
      </cftry>
      <cfreturn this.idCountryID>
    </cffunction>
    </cfcomponent>

  • PO value in MC$4 report not correct

    Hi All
    When I am executing report MC$4 for a particular month the output of the report give correct GR Value and Invoice Amount but PO Value is being shown as 0.00 which is not correct.
    Please let me know why PO value is coming as 0.00.
    Regards
    Satish Kumar

    usually MC$4 report is based on infostrcuture S012
    And update rule for S012 is by default the PO date.
    means if you create a PO in March, then an entry in S012 is created having the PO value.
    if you receive in April, then SAP checks when the PO was created and posts into that month, in this example it will add the GR value to March record.  Same for invoice receipt.
    However it is possible to change update rules, what I have seen pretty often to have the GRs and IRs in the exact month when they were posted. In this case you may experience a sitaution like you described. In other words the PO was created in a period outside of your selection.
    And in rare cases an infostructure update fails. This does not cause an entire rollback of the transaction, as it is just statistics and not accounting relevant.  This would cause the same behaviour.
    Extend your selection to an earlier period in MC$4 and check if you see the PO value then.

  • [svn:osmf:] 13003: Update some unit tests to reflect that LayoutContextSprite now returns 0 ( not NaN) for uninitialized values to be consistent with ViewTrait.

    Revision: 13003
    Revision: 13003
    Author:   [email protected]
    Date:     2009-12-16 13:12:08 -0800 (Wed, 16 Dec 2009)
    Log Message:
    Update some unit tests to reflect that LayoutContextSprite now returns 0 (not NaN) for uninitialized values to be consistent with ViewTrait.
    Modified Paths:
        osmf/trunk/framework/MediaFrameworkFlexTest/org/osmf/layout/TestLayoutContextSprite.as
        osmf/trunk/framework/MediaFrameworkFlexTest/org/osmf/proxies/TestListenerProxyElementAsSu bclass.as

    Revision: 13003
    Revision: 13003
    Author:   [email protected]
    Date:     2009-12-16 13:12:08 -0800 (Wed, 16 Dec 2009)
    Log Message:
    Update some unit tests to reflect that LayoutContextSprite now returns 0 (not NaN) for uninitialized values to be consistent with ViewTrait.
    Modified Paths:
        osmf/trunk/framework/MediaFrameworkFlexTest/org/osmf/layout/TestLayoutContextSprite.as
        osmf/trunk/framework/MediaFrameworkFlexTest/org/osmf/proxies/TestListenerProxyElementAsSu bclass.as

  • OSD fails during WinPE Install drivers - "The hash value is not correct"

    Hello everyone,
    We are facing a strange problem during OSD for one of the hardware models. We are on SCCM 2012 R2, and mainly build Windows 7
    x86 machines on various Lenovo models.
    I can see this problem I have encountered has been discussed elsewhere on this forum (especially SCCM 2007 threads) but not really sure what I have
    observed is the issue being discussed. Here is the problem....<o:p></o:p>
    We have a laptop (Lenovo x240) which has been building perfectly fine for as long as I can remember. However since last 2 days when I try to build
    the same model, we get the above error during the driver installation stage (in WinPE).<o:p></o:p>
    I referred to some of the other threads and MS blogs where they say file names with extended ASCII character may break the hash of the files (packages)
    being downloaded during OSD resulting in the error(http://blogs.technet.com/b/smsandmom/archive/2008/10/09/configmgr-2007-smsts-error-hash-could-not-be-matched-for-the-downloaded-content.aspx).
    The point is I have manually gone into the Command prompt (F8) during driver downloading stage (right after apply OS image) and checked that the drivers are getting downloaded fine (but there is not enough time for me to check individual sub folders for the
    extended ascii character problem). When it comes to installing the drivers, the TS fails and immediately the whole of the driver packages folder under D:\_SmsTaskSequence\Packages\PackageID folder becomes empty.
    There is nothing much logged in the ts log either.<o:p></o:p>
    Any thoughts? The only thing that has changed in our environment in the last 2 weeks is that we have upgraded from SCCM
    2012 SP1 to R2(CU3). All the other models have built ok since and only X240 is running into this issue.
    Would recreating the driver pack be an option here? I also understand that we also can configure the TS to refer to the package media directly from
    the DP share (instead of downloading) but we would rather not get into that at this stage as we have not tested the TS with that configuration (it might open another can of worms with package command lines etc.)
    One more point - This "The hash value is not correct" error message is only logged on the SCCM status messaging system (which can be viewed
    under the Monitoring wunderbar - Status Message Queries). I do not find it on the ts log file interestingly.
    Any help is much appreciated.<o:p></o:p>

    I've only seen this once before in a ConfigMgr 2012 RTM environment and after fighting it for a few days I ended up simply recreating the driver packages.
    -Nick O.

  • Error: this application, or a library it uses, has passed an invalid numeric value (NaN, or not-a-number) to CoreGraphics API. This is a serious error and contributes to an overall degradation of system stability and reliability. This notice is a courtesy

    Error: this application, or a library it uses, has passed an invalid numeric value (NaN, or not-a-number) to CoreGraphics API. This is a serious error and contributes to an overall degradation of system stability and reliability. This notice is a courtesy: please fix this problem. It will become a fatal error in an upcoming update.

    This console log is a note to the developers of whatever application you are using. You can safely ignore it.

  • Search for multiple values separated by carriage return and not commas

    I have developed a report in BI Publisher that allows a user to enter multiple values that are separated by commas.
    Is there any way of entering multiple values that are separated by carriage return and not commas?
    Any help would be appreciated.
    Thanks

    Here below, without function :
    SQL> with tbl as
      2  (select 0 c1, 'j' c2 from dual union all
      3   select 1 c1, 'k' c2 from dual union all
      4   select 2 c1, 'l' c2 from dual union all
      5   select 3 c1, 'm' c2 from dual union all
      6   select 4 c1, 'n' c2 from dual )
      7  select *
      8  from   tbl
      9  where   c1 in (select substr(mystring,instr(mystring,',',1,rownum)+1,instr(mystring,',',1,rownum+1)-instr(mystring,',',1,rownum)-1)
    10                 from   (select ','||'&str'||',' mystring from dual)
    11                 connect by  level <= length(mystring)-length(replace(mystring,','))-1);
    Enter value for str: 1,2,3
    old  10:                from   (select ','||'&str'||',' mystring from dual)
    new  10:                from   (select ','||'1,2,3'||',' mystring from dual)
            C1 C
             1 k
             2 l
             3 m
    SQL> /
    Enter value for str: 0
    old  10:                from   (select ','||'&str'||',' mystring from dual)
    new  10:                from   (select ','||'0'||',' mystring from dual)
            C1 C
             0 j
    SQL> Nicolas.

  • HT3702 i have charges on ny bank statement i did not approve. if this is not corrected. I will file a conplaint against this. I put in for a several return calls and no one has called yet.

    I have charges on my account I did not approve. I have sent requested for return phone calls to discuss this problem nd no one has called. If his problem is not corrected. I am reporting it as fraud.

    We are fellow users here on these user-to-user forums, you're not talking to iTunes Support nor Apple. You will need to contact iTunes Support again : http://www.apple.com/support/itunes/contact/ - click on Contact iTunes Store Support on the right-hand side of the page

  • RFC Lookup API error in PI 7.1?

    Hi Guys,
    The RFC lookup which has been developed in PI 7.0 using the lookup API is unable to find the CC defined in the directory for a business system. after upgrading to PI 7.1. We are getting the error as below. This look up works perfectly fine in Dev(PI 7.1) and QA(PI 7.1) but in Prod(PI 7.1). We are on PI 7.1 EHP1 SP03.
    Errorcom.sap.aii.mapping.lookup.LookupException: Plain exception:Error when calling an adapter by using the communication channel In_RFC_SAPLookUp (Party: , Service: Test, Object ID: 74e5e47336133351bebcb8c6a6bc68c8) The channel with object ID 74e5e47336133351bebcb8c6a6bc68c8 could not be found in the Integration Server Java Cache. Check if the channel exists in the Integration Builder Directory and execute a refresh of the Java Cach.
    We did the cache refresh and also restarted the prod server but the error still persists. We have tried connecting to the prod receiver sap system from QA and the lookup works perfectly fine. We dont understand why it dosent work in prod.
    any help or suggestions would be really appreciated.
    Thanks,
    Srini

    Hi Rajesh,
    The CC has the correct business system. We have also tried even by creating a new cc and it always says it cannot find the defined cc from the RFC lookup. We are passing this value as a constant value to the RFC lookup.
    I could not understand why it is not finding only this CC? Is this something that RFC lookup is unable to find the CC?
    any help would be appreciated
    Thanks,
    Srini

  • Help on Lookup API

    Hi,
      While I was searching for stuff on Lookup API, I came across the two good blogs talking about different ways to do Lookups.
    RFC Look up - Use this crazy piece for any RFC Mapping Lookups!
    RFC lookup with communication channel - The specified item was not found.
    But  I couldnt find an answer for the below questions.Would appreciate if  anyone can let me know,
    1)  Which method has a good performance - Lookup using JCo or Lookup using RFC adapter(using communication channel)
    2)  Is there any guideline to decide between JCo and RFC adapter method.
    2)  If  I am using the JCo method to do the lookup, how can I provide the  connection details(host,username,password) at runtime.
    Thanks in advance!

    I think he is asking as to how we can pass the values dynamically using JCO.
    Try creating a .properties file and store it in each instance of XI in a specific folder and code the JCO as follows.
    try {
                    properties = new Properties();
                    properties.load(new FileInputStream(("/usr/sap/properties/xiprop.properties")));
                    client = properties.getProperty("jco.client.client");
                    user = properties.getProperty("jco.client.user");
                    passwd = properties.getProperty("jco.client.passwd");
                    ashost = properties.getProperty("jco.client.ashost");
                    sysnr = properties.getProperty("jco.client.sysnr");
                    // Change the logon information to your own system/user
                    mConnection = JCO.createClient(client, user, passwd, "EN", ashost, sysnr );
                    // connect to SAP
                    mConnection.connect();
                    // create repository
                    mRepository = new JCO.Repository( "SAPLookup", mConnection );
                    // Create function
                    JCO.Function function = null;
                    //write your code here
                    IFunctionTemplate ft = mRepository.getFunctionTemplate("FunctionModuleName");
                    function = ft.getFunction();
                    // Obtain parameter list for function
                    JCO.ParameterList input = function.getImportParameterList();
                    // Pass function parameters
                    input.setValue( a , "importValuetoFM" );
                    mConnection.execute( function );
                    ret = function.getExportParameterList().getString( "exportValueofFM" );
            } catch (Exception e) {
                    e.printStackTrace();
                    //Disconnect the connection
            } finally {
                    if (mConnection != null) {
                                    try {
                                                    mConnection.disconnect();
                                            } catch (Exception ex) {
                                                    ex.printStackTrace();
    return ret;
    BR

  • When using TODATE function MDX query is not correctly generated

    Essbase 9.3.1.2 and OBIEE 10.1.3.4.1.
    When using TODATE function MDX query is not correctly generated.
    This leads to unexpected values not only on cumulative columns in report (generated with TODATE), but also other columns (calculated with AGO function or directly read from cube) have incorrect values.
    The problem occurs when you filter on a column that is not in the select list. If you filter on just one level of dimension, results are fine. You can filter on multiple dimensions as long as you filter on just one level of each dimension.
    If you filter on two or more levels of one dimension, than results are not correct. In some cases results for TODATE column are all zeros, in some cases it is a random value returned by Essbase (same random value for all rows of that column), and in some cases BI Server returns an error:
    State: HY000. Code: 10058. [NQODBC] [SQL_STATE: HY000] [nQSError: 10058] A general error has occurred. Essbase Error: Network error [10054]: Cannot Send Data (HY000).
    Here is generated MDX code:
    With
    set [Grupe proizvoda2] as '{[Grupe proizvoda].[N4]}'
    set [Grupe proizvoda4] as 'Generate([Grupe proizvoda2], Descendants([Grupe proizvoda].currentmember, [Grupe proizvoda].Generations(4), leaves))'
    set [Segmentacija2] as '{[Segmentacija].[RETAIL]}'
    set [Segmentacija4] as 'Filter(Generate({[Segmentacija2]}, Descendants([Segmentacija].currentmember, [Segmentacija].Generations(4),SELF), ALL), ([Segmentacija].CurrentMember IS [Segmentacija].[AFFLUENT]))'
    set [Vrijeme3] as '{[Vrijeme].[MJESEC_4_2009]}'
    member [Segmentacija].[SegmentacijaCustomGroup]as 'Sum([Segmentacija4])', SOLVE_ORDER = AGGREGATION_SOLVEORDER
    member [Accounts].[MS1] as '(ParallelPeriod([Vrijeme].[Gen3,Vrijeme],2,[Vrijeme].currentmember), [Accounts].[Trosak kapitala])'
    member [Accounts].[MS2] as '(ParallelPeriod([Vrijeme].[Gen3,Vrijeme],1,[Vrijeme].currentmember), [Accounts].[Trosak kapitala])'
    member [Accounts].[MS3] as 'AGGREGATE({PeriodsToDate([Vrijeme].[Gen2,Vrijeme],[Vrijeme].currentmember)}, [Accounts].[Trosak kapitala])'
    select
    { [Accounts].[Trosak kapitala],
    [Accounts].[MS1],
    [Accounts].[MS2],
    [Accounts].[MS3]
    } on columns,
    NON EMPTY {crossjoin ({[Grupe proizvoda4]},{[Vrijeme3]})} properties ANCESTOR_NAMES, GEN_NUMBER on rows
    from [NISE.NISE]
    where ([Segmentacija].[SegmentacijaCustomGroup])
    If you remove part with TODATE function, the results are fine. If you leave TODATE function, OBIEE returns an error mentioned above. If you manually modify variable SOLVE_ORDER and set value to, for example, 100 instead of AGGREGATION_SOLVEORDER, results are OK.
    In all cases when this variable was modified in generated MDX, and query manually executed on Essabse, results were OK. This variable seems to be the possible problem.

    Hi,
    Version is
    BANNER
    Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bi
    PL/SQL Release 10.2.0.5.0 - Production
    CORE    10.2.0.5.0      Production
    TNS for 64-bit Windows: Version 10.2.0.5.0 - Production
    NLSRTL Version 10.2.0.5.0 - Production
    Sorry, in my last post i forgot to mention that i already created a function based index but still it is not using because, there is a UNIQUE constraint on that column.
    Thanks

Maybe you are looking for

  • Extensible Policy problems

    Greetings, I am having issues with extensible policies. I have disabled the network control panel via admin.adm Network->Restrict Network Control Panel. Problem is it is working too good. The control panel remains disabled no matter who logs into the

  • Need to take the N-th element from a queue

    hello everyone! I have a problem, i don't know how to take ony one element from a queue... Indeed, i need to take only the 3rd element of a queue but i don't know how to do that... so i though maybe i can change it as an array (with the vi "flush que

  • How to delete an installed printer driver on imac

    I have installed a new printer through on my imac (10.6) and it does not work. how can I delete this installed printer driver (without affecting anything else)?

  • My iMessage has NEVER reflected my phone # on my iPhone 4s.

    I have upgraded to all the latest iOS 7 versions including the iOS 7.0.3 and I still don't see my phone # appear with my email addresses.  In fact, I routinely get the "An error occurred during activation. Try again." error message.  I have followed

  • Browser Sets Empty Unable to Add

    Hi, I am using the online version of browserlab and when I enter a url I am asked to choose a browser set. When I go to the browser set window there are no sets defined and I am unable to add a new one by clicking the add new set button. Any ideas?