Removing empty node created by Value Mapping Functoid
If the first input parameter to Value Mapping functoid is not true, it creates an empty element in the destination which I don't want, how can I get rid of this empty element, if it's empty I do not want it to created in the destination document.
Do let me know how can I achive this within a Map.
You can get rid of the empty nodes in your map by using a custom functoid and use XSLT script (also given below) and mentioned in this article
Remove empty nodes in BizTalk by using XSLT
<?xml version="1.0" ?>
<xsl:stylesheet xmlns:xsl="@@ YOUR NAMESPACE @@" version="1.0" xmlns:ns0="http://Stater.Isvcs.Iface.BO.GetLoanData.ElfV2">
<xsl:output method="xml" indent="yes" />
<xsl:template match="node()">
<xsl:if test="count(descendant::text()[string-length(normalize-space(.))>0]|@*)">
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
</xsl:copy>
</xsl:if>
</xsl:template>
<xsl:template match="@*">
<xsl:copy />
</xsl:template>
<xsl:template match="text()">
<xsl:value-of select="normalize-space(.)" />
</xsl:template>
</xsl:stylesheet>
Abdul Rafay - MVP & MCTS BizTalk Server
blog: http://abdulrafaysbiztalk.wordpress.com/
Please mark this as answer if it helps.
Similar Messages
-
Unable to remove empty nodes from Message
Hello,
I have message format like this:
<?xml version="1.0" encoding="UTF-8"?>
<ns1:Enrollment xmlns:ns1="http://pac.bluecross.ca/Common/Types" xmlns:ns2="http://www.w3.org/2001/XMLSchema-instance">
<ns1:Policies>
<ns1:Policy>
<ns1:Code>11140</ns1:Code>
<ns1:Certificates>
<ns1:Certificate>
<ns1:Class>
<ns1:Code>1</ns1:Code>
<ns1:EffectiveDate>2009-05-09T00:00:00</ns1:EffectiveDate>
</ns1:Class>
<ns1:CurrentEmploymentRecord>
<ns1:HoursWorked>20</ns1:HoursWorked>
<ns1:Type>FullTimeHourly</ns1:Type>
</ns1:CurrentEmploymentRecord>
<ns1:CurrentIncome>
<ns1:Amount>5000</ns1:Amount>
<ns1:EffectiveDate>2014-01-01T00:00:00</ns1:EffectiveDate>
<ns1:Frequency>BiWeekly</ns1:Frequency>
<ns1:Type>Salary</ns1:Type>
</ns1:CurrentIncome>
<ns1:Dependents>
<ns1:CoveredLife>
<ns1:CoverageDeclines/>
<ns1:CoveredLifeHolder>
<ns1:Contacts/>
<ns1:DefaultAddress/>
<ns1:DefaultEmail/>
<ns1:DefaultPhone/>
<ns1:PreferredLanguage>ENG</ns1:PreferredLanguage>
<ns1:DateOfBirth>2009-05-09T00:00:00</ns1:DateOfBirth>
<ns1:FirstName>Sean Louis</ns1:FirstName>
<ns1:LastName>Carrier</ns1:LastName>
<ns1:***>Male</ns1:***>
</ns1:CoveredLifeHolder>
<ns1:DependentCategory>Child</ns1:DependentCategory>
<ns1:DependentSubCategory>Minor</ns1:DependentSubCategory>
<ns1:Number>03</ns1:Number>
</ns1:CoveredLife>
</ns1:Dependents>
<ns1:Division>
<ns1:Code>1</ns1:Code>
<ns1:EffectiveDate>2009-05-09T00:00:00</ns1:EffectiveDate>
</ns1:Division>
<ns1:FamilyCategory>Family</ns1:FamilyCategory>
<ns1:HealthCareSpendingAccountInformation/>
<ns1:HireDate>2002-07-15T00:00:00</ns1:HireDate>
<ns1:InsuredCoveredLife>
<ns1:CoverageDeclines/>
<ns1:CoveredLifeHolder>
<ns1:Contacts/>
<ns1:DefaultAddress ns2:type="ns1:CanadianAddress">
<ns1:City>Surrey</ns1:City>
<ns1:Country>CA</ns1:Country>
<ns1:Line1>98 - 10752 Guildford Drive</ns1:Line1>
<ns1:PostalCode>V3R 1W6</ns1:PostalCode>
<ns1:Province>BC</ns1:Province>
</ns1:DefaultAddress>
<ns1:DefaultEmail>
<ns1:CorrespondenceMethod>Email</ns1:CorrespondenceMethod>
<ns1:CorrespondenceType>Home</ns1:CorrespondenceType>
<ns1:Data>[email protected]</ns1:Data>
</ns1:DefaultEmail>
<ns1:DefaultPhone>
<ns1:CorrespondenceMethod>Telephone</ns1:CorrespondenceMethod>
<ns1:CorrespondenceType>Home</ns1:CorrespondenceType>
<ns1:Data>(001)(555)555-5555</ns1:Data>
</ns1:DefaultPhone>
<ns1:PreferredContact>Mail</ns1:PreferredContact>
<ns1:PreferredLanguage>ENG</ns1:PreferredLanguage>
<ns1:DateOfBirth>1974-02-07T00:00:00</ns1:DateOfBirth>
<ns1:FirstName>Krisztina</ns1:FirstName>
<ns1:LastName>Carrier</ns1:LastName>
<ns1:***>Female</ns1:***>
</ns1:CoveredLifeHolder>
<ns1:EffectiveDate>2007-06-01T00:00:00</ns1:EffectiveDate>
<ns1:Status>Inforce</ns1:Status>
</ns1:InsuredCoveredLife>
<ns1:JobTitle>Recreation Leader 2</ns1:JobTitle>
<ns1:Number>000050</ns1:Number>
<ns1:Plan>
<ns1:Code>9027380101</ns1:Code>
<ns1:EffectiveDate>2009-05-09T00:00:00</ns1:EffectiveDate>
</ns1:Plan>
<ns1:RegionalAdministration>
<ns1:Country>CA</ns1:Country>
<ns1:ProvinceOfBilling>BC</ns1:ProvinceOfBilling>
</ns1:RegionalAdministration>
<ns1:Section/>
</ns1:Certificate>
</ns1:Certificates>
</ns1:Policy>
Here is my XSL for removing empty nodes:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:strip-space elements="*"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="*[not(@*) and not(*) and (not(text()) or .=-1)]"/>
</xsl:stylesheet>
This program removes all empty nodes except below nodes:
<ns1:Dependents>
<ns1:CoveredLife>
<ns1:CoverageDeclines/>
<ns1:CoveredLifeHolder>
<ns1:Contacts/>
<ns1:DefaultAddress/>
<ns1:DefaultEmail/>
<ns1:DefaultPhone/>
Please throw some ideas.
Thank you
JohnHere is my XSD:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:tns="http://pac.bluecross.ca/Common/Types" xmlns:ser="http://schemas.microsoft.com/2003/10/Serialization/" elementFormDefault="qualified" targetNamespace="http://pac.bluecross.ca/Common/Types" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="BusinessObject">
<xs:sequence>
</xs:sequence>
</xs:complexType>
<xs:element name="BusinessObject" nillable="true" type="tns:BusinessObject" />
<xs:simpleType name="CancelReasonCodes">
<xs:restriction base="xs:string">
<xs:enumeration value="LaidOff">
</xs:enumeration>
<xs:enumeration value="Retired">
</xs:enumeration>
<xs:enumeration value="Divorced">
</xs:enumeration>
<xs:enumeration value="Separated">
</xs:enumeration>
<xs:enumeration value="NoLongerEligibleForCoverage">
</xs:enumeration>
<xs:enumeration value="MaternityLeave">
</xs:enumeration>
<xs:enumeration value="LeaveOfAbsense">
</xs:enumeration>
<xs:enumeration value="OnDisability">
</xs:enumeration>
<xs:enumeration value="PensionExpired">
</xs:enumeration>
<xs:enumeration value="StrikeOrLockout">
</xs:enumeration>
<xs:enumeration value="TransferredToAnotherCarrier">
</xs:enumeration>
<xs:enumeration value="WaivedBenefitsNoReason">
</xs:enumeration>
<xs:enumeration value="WaivedBenefitsSpousalCoverage">
</xs:enumeration>
<xs:enumeration value="LeftCompany">
</xs:enumeration>
<xs:enumeration value="DisContinuedCoverage">
</xs:enumeration>
<xs:enumeration value="NoProvincialMedicalPlan">
</xs:enumeration>
<xs:enumeration value="Transferred">
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
<xs:element name="CancelReasonCodes" nillable="true" type="tns:CancelReasonCodes" />
<xs:simpleType name="CorrespondenceMethodCodes">
<xs:restriction base="xs:string">
<xs:enumeration value="Mail">
</xs:enumeration>
<xs:enumeration value="Telephone">
</xs:enumeration>
<xs:enumeration value="Email">
</xs:enumeration>
<xs:enumeration value="FTP">
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
<xs:element name="CorrespondenceMethodCodes" nillable="true" type="tns:CorrespondenceMethodCodes" />
<xs:simpleType name="CorrespondenceTypeCodes">
<xs:restriction base="xs:string">
<xs:enumeration value="Home">
</xs:enumeration>
<xs:enumeration value="Office">
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
<xs:element name="CorrespondenceTypeCodes" nillable="true" type="tns:CorrespondenceTypeCodes" />
<xs:simpleType name="CoveredLifeStatusCodes">
<xs:restriction base="xs:string">
<xs:enumeration value="Inforce">
</xs:enumeration>
<xs:enumeration value="Terminated">
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
<xs:element name="CoveredLifeStatusCodes" nillable="true" type="tns:CoveredLifeStatusCodes" />
<xs:simpleType name="DependentCategoryCodes">
<xs:restriction base="xs:string">
<xs:enumeration value="Child">
</xs:enumeration>
<xs:enumeration value="Spouse">
</xs:enumeration>
<xs:enumeration value="Insured">
</xs:enumeration>
<xs:enumeration value="Dependent">
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
<xs:element name="DependentCategoryCodes" nillable="true" type="tns:DependentCategoryCodes" />
<xs:simpleType name="DependentSubCategoryCodes">
<xs:restriction base="xs:string">
<xs:enumeration value="Student">
</xs:enumeration>
<xs:enumeration value="Minor">
</xs:enumeration>
<xs:enumeration value="CommonLaw">
</xs:enumeration>
<xs:enumeration value="Married">
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
<xs:element name="DependentSubCategoryCodes" nillable="true" type="tns:DependentSubCategoryCodes" />
<xs:simpleType name="EmploymentTypeCodes">
<xs:restriction base="xs:string">
<xs:enumeration value="Director">
</xs:enumeration>
<xs:enumeration value="FullTimeSalary">
</xs:enumeration>
<xs:enumeration value="FullTimeHourly">
</xs:enumeration>
<xs:enumeration value="PartTimeSalary">
</xs:enumeration>
<xs:enumeration value="PartTimeHourly">
</xs:enumeration>
<xs:enumeration value="OwnerOperator">
</xs:enumeration>
<xs:enumeration value="Retired">
</xs:enumeration>
<xs:enumeration value="Seasonal">
</xs:enumeration>
<xs:enumeration value="Casual">
</xs:enumeration>
<xs:enumeration value="Client">
</xs:enumeration>
<xs:enumeration value="Consultant">
</xs:enumeration>
<xs:enumeration value="Contract">
</xs:enumeration>
<xs:enumeration value="ElectedOfficial">
</xs:enumeration>
<xs:enumeration value="JobShare">
</xs:enumeration>
<xs:enumeration value="Temporary">
</xs:enumeration>
<xs:enumeration value="Volunteer">
</xs:enumeration>
<xs:enumeration value="MSDRecipientnotEE">
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
<xs:element name="EmploymentTypeCodes" nillable="true" type="tns:EmploymentTypeCodes" />
<xs:simpleType name="FamilyCategoryCodes">
<xs:restriction base="xs:string">
<xs:enumeration value="Single">
</xs:enumeration>
<xs:enumeration value="Family">
</xs:enumeration>
<xs:enumeration value="Couple">
</xs:enumeration>
<xs:enumeration value="NotApplicable">
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
<xs:element name="FamilyCategoryCodes" nillable="true" type="tns:FamilyCategoryCodes" />
<xs:simpleType name="FrequencyCodes">
<xs:restriction base="xs:string">
<xs:enumeration value="Annual">
</xs:enumeration>
<xs:enumeration value="BiMonthly">
</xs:enumeration>
<xs:enumeration value="BiWeekly">
</xs:enumeration>
<xs:enumeration value="Hourly">
</xs:enumeration>
<xs:enumeration value="Monthly">
</xs:enumeration>
<xs:enumeration value="Quarterly">
</xs:enumeration>
<xs:enumeration value="SemiAnnually">
</xs:enumeration>
<xs:enumeration value="SemiMonthly">
</xs:enumeration>
<xs:enumeration value="Weekly">
</xs:enumeration>
<xs:enumeration value="LifeTime">
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
<xs:element name="FrequencyCodes" nillable="true" type="tns:FrequencyCodes" />
<xs:simpleType name="IncomeTypeCodes">
<xs:restriction base="xs:string">
<xs:enumeration value="Salary">
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
<xs:element name="IncomeTypeCodes" nillable="true" type="tns:IncomeTypeCodes" />
<xs:simpleType name="LanguageCodes">
<xs:restriction base="xs:string">
<xs:enumeration value="ENG">
</xs:enumeration>
<xs:enumeration value="FRA">
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
<xs:element name="LanguageCodes" nillable="true" type="tns:LanguageCodes" />
<xs:simpleType name="LineOfBusinessCategoryCodes">
<xs:restriction base="xs:string">
<xs:enumeration value="Health">
</xs:enumeration>
<xs:enumeration value="Dental">
</xs:enumeration>
<xs:enumeration value="Life">
</xs:enumeration>
<xs:enumeration value="AccidentalDeathAndDismemberment">
</xs:enumeration>
<xs:enumeration value="Disability">
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
<xs:element name="LineOfBusinessCategoryCodes" nillable="true" type="tns:LineOfBusinessCategoryCodes" />
<xs:simpleType name="ProvinceCodes">
<xs:restriction base="xs:string">
<xs:enumeration value="AB">
</xs:enumeration>
<xs:enumeration value="BC">
</xs:enumeration>
<xs:enumeration value="MB">
</xs:enumeration>
<xs:enumeration value="NB">
</xs:enumeration>
<xs:enumeration value="NL">
</xs:enumeration>
<xs:enumeration value="NT">
</xs:enumeration>
<xs:enumeration value="NS">
</xs:enumeration>
<xs:enumeration value="ON">
</xs:enumeration>
<xs:enumeration value="PE">
</xs:enumeration>
<xs:enumeration value="QC">
</xs:enumeration>
<xs:enumeration value="SK">
</xs:enumeration>
<xs:enumeration value="YT">
</xs:enumeration>
<xs:enumeration value="NU">
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
<xs:element name="ProvinceCodes" nillable="true" type="tns:ProvinceCodes" />
<xs:simpleType name="ReapplicationReasonCodes">
<xs:restriction base="xs:string">
<xs:enumeration value="Exception">
</xs:enumeration>
<xs:enumeration value="Invalid">
</xs:enumeration>
<xs:enumeration value="Valid">
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
<xs:element name="ReapplicationReasonCodes" nillable="true" type="tns:ReapplicationReasonCodes" />
<xs:simpleType name="SexCodes">
<xs:restriction base="xs:string">
<xs:enumeration value="Male">
</xs:enumeration>
<xs:enumeration value="Female">
</xs:enumeration>
<xs:enumeration value="NotApplicable">
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
<xs:element name="SexCodes" nillable="true" type="tns:SexCodes" />
<xs:simpleType name="StateCodes">
<xs:restriction base="xs:string">
<xs:enumeration value="AL">
</xs:enumeration>
<xs:enumeration value="AK">
</xs:enumeration>
<xs:enumeration value="AZ">
</xs:enumeration>
<xs:enumeration value="AR">
</xs:enumeration>
<xs:enumeration value="CA">
</xs:enumeration>
<xs:enumeration value="Colorado">
</xs:enumeration>
<xs:enumeration value="CT">
</xs:enumeration>
<xs:enumeration value="DE">
</xs:enumeration>
<xs:enumeration value="DC">
</xs:enumeration>
<xs:enumeration value="FL">
</xs:enumeration>
<xs:enumeration value="GA">
</xs:enumeration>
<xs:enumeration value="HI">
</xs:enumeration>
<xs:enumeration value="ID">
</xs:enumeration>
<xs:enumeration value="IL">
</xs:enumeration>
<xs:enumeration value="IN">
</xs:enumeration>
<xs:enumeration value="IA">
</xs:enumeration>
<xs:enumeration value="KS">
</xs:enumeration>
<xs:enumeration value="KY">
</xs:enumeration>
<xs:enumeration value="LA">
</xs:enumeration>
<xs:enumeration value="ME">
</xs:enumeration>
<xs:enumeration value="MD">
</xs:enumeration>
<xs:enumeration value="MA">
</xs:enumeration>
<xs:enumeration value="MI">
</xs:enumeration>
<xs:enumeration value="MN">
</xs:enumeration>
<xs:enumeration value="MS">
</xs:enumeration>
<xs:enumeration value="MO">
</xs:enumeration>
<xs:enumeration value="MT">
</xs:enumeration>
<xs:enumeration value="NE">
</xs:enumeration>
<xs:enumeration value="NV">
</xs:enumeration>
<xs:enumeration value="NH">
</xs:enumeration>
<xs:enumeration value="NJ">
</xs:enumeration>
<xs:enumeration value="NM">
</xs:enumeration>
<xs:enumeration value="NY">
</xs:enumeration>
<xs:enumeration value="NC">
</xs:enumeration>
<xs:enumeration value="ND">
</xs:enumeration>
<xs:enumeration value="OH">
</xs:enumeration>
<xs:enumeration value="OK">
</xs:enumeration>
<xs:enumeration value="OR">
</xs:enumeration>
<xs:enumeration value="PA">
</xs:enumeration>
<xs:enumeration value="RI">
</xs:enumeration>
<xs:enumeration value="SC">
</xs:enumeration>
<xs:enumeration value="SD">
</xs:enumeration>
<xs:enumeration value="TN">
</xs:enumeration>
<xs:enumeration value="TX">
</xs:enumeration>
<xs:enumeration value="UT">
</xs:enumeration>
<xs:enumeration value="VT">
</xs:enumeration>
<xs:enumeration value="VA">
</xs:enumeration>
<xs:enumeration value="WA">
</xs:enumeration>
<xs:enumeration value="WV">
</xs:enumeration>
<xs:enumeration value="WI">
</xs:enumeration>
<xs:enumeration value="WY">
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
<xs:element name="StateCodes" nillable="true" type="tns:StateCodes" />
<xs:complexType name="Address">
<xs:complexContent mixed="false">
<xs:extension base="tns:BusinessObject">
<xs:sequence>
<xs:element minOccurs="0" name="City" nillable="true" type="xs:string">
</xs:element>
<xs:element minOccurs="0" name="Country" nillable="true" type="xs:string">
</xs:element>
<xs:element minOccurs="0" name="Line1" nillable="true" type="xs:string">
</xs:element>
<xs:element minOccurs="0" name="Line2" nillable="true" type="xs:string">
</xs:element>
<xs:element minOccurs="0" name="Line3" nillable="true" type="xs:string">
</xs:element>
<xs:element minOccurs="0" name="Line4" nillable="true" type="xs:string">
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="Address" nillable="true" type="tns:Address" />
<xs:complexType name="InternationalAddress">
<xs:complexContent mixed="false">
<xs:extension base="tns:Address">
<xs:sequence>
<xs:element minOccurs="0" name="Region" nillable="true" type="xs:string">
</xs:element>
<xs:element minOccurs="0" name="PostalCode" nillable="true" type="xs:string">
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="InternationalAddress" nillable="true" type="tns:InternationalAddress" />
<xs:complexType name="CanadianAddress">
<xs:complexContent mixed="false">
<xs:extension base="tns:Address">
<xs:sequence>
<xs:element minOccurs="0" name="PostalCode" nillable="true" type="xs:string">
</xs:element>
<xs:element minOccurs="0" name="Province" nillable="true" type="tns:ProvinceCodes" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="CanadianAddress" nillable="true" type="tns:CanadianAddress" />
<xs:complexType name="AmericanAddress">
<xs:complexContent mixed="false">
<xs:extension base="tns:Address">
<xs:sequence>
<xs:element minOccurs="0" name="State" nillable="true" type="tns:StateCodes">
</xs:element>
<xs:element minOccurs="0" name="ZipCode" nillable="true" type="xs:string">
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="AmericanAddress" nillable="true" type="tns:AmericanAddress" />
<xs:complexType name="Person">
<xs:complexContent mixed="false">
<xs:extension base="tns:Client">
<xs:sequence>
<xs:element minOccurs="0" name="DateOfBirth" nillable="true" type="xs:dateTime">
</xs:element>
<xs:element minOccurs="0" name="FirstName" nillable="true" type="xs:string">
</xs:element>
<xs:element minOccurs="0" name="LastName" nillable="true" type="xs:string">
</xs:element>
<xs:element minOccurs="0" name="MaidenName" nillable="true" type="xs:string">
</xs:element>
<xs:element minOccurs="0" name="MiddleName" nillable="true" type="xs:string">
</xs:element>
<xs:element minOccurs="0" name="PreferredName" nillable="true" type="xs:string">
</xs:element>
<xs:element minOccurs="0" name="***" type="tns:SexCodes">
</xs:element>
<xs:element minOccurs="0" name="Suffix" nillable="true" type="xs:string">
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="Person" nillable="true" type="tns:Person" />
<xs:complexType name="Client">
<xs:complexContent mixed="false">
<xs:extension base="tns:BusinessObject">
<xs:sequence>
<xs:element minOccurs="0" name="Contacts" nillable="true" type="tns:ArrayOfContactInformation">
</xs:element>
<xs:element minOccurs="0" name="DefaultAddress" nillable="true" type="tns:Address">
</xs:element>
<xs:element minOccurs="0" name="DefaultEmail" nillable="true" type="tns:ContactInformation">
</xs:element>
<xs:element minOccurs="0" name="DefaultPhone" nillable="true" type="tns:ContactInformation">
</xs:element>
<xs:element minOccurs="0" name="PreferredContact" nillable="true" type="tns:CorrespondenceMethodCodes">
</xs:element>
<xs:element minOccurs="0" name="PreferredLanguage" nillable="true" type="tns:LanguageCodes">
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="Client" nillable="true" type="tns:Client" />
<xs:complexType name="Division">
<xs:complexContent mixed="false">
<xs:extension base="tns:Structurable">
<xs:sequence>
<xs:element minOccurs="0" name="Code" nillable="true" type="xs:string">
</xs:element>
<xs:element minOccurs="0" name="SubDivisions" nillable="true" type="tns:ArrayOfDivision">
</xs:element>
<xs:element minOccurs="0" name="EffectiveDate" nillable="true" type="xs:dateTime">
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="Division" nillable="true" type="tns:Division" />
<xs:complexType name="Structurable">
<xs:complexContent mixed="false">
<xs:extension base="tns:BusinessObject">
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="Structurable" nillable="true" type="tns:Structurable" />
<xs:complexType name="CoveredLife">
<xs:complexContent mixed="false">
<xs:extension base="tns:BusinessObject">
<xs:sequence>
<xs:element minOccurs="0" name="ApplicationDate" type="xs:dateTime">
</xs:element>
<xs:element minOccurs="0" name="CancelReason" nillable="true" type="tns:CancelReasonCodes">
</xs:element>
<xs:element minOccurs="0" name="CoverageDeclines" nillable="true" type="tns:ArrayOfBenefitDecline">
</xs:element>
<xs:element minOccurs="0" name="CoveredLifeHolder" nillable="true" type="tns:Person">
</xs:element>
<xs:element minOccurs="0" name="DependentCategory" nillable="true" type="tns:DependentCategoryCodes">
</xs:element>
<xs:element minOccurs="0" name="DependentSubCategory" nillable="true" type="tns:DependentSubCategoryCodes">
</xs:element>
<xs:element minOccurs="0" name="EffectiveDate" type="xs:dateTime">
</xs:element>
<xs:element minOccurs="0" name="Number" nillable="true" type="xs:string">
</xs:element>
<xs:element minOccurs="0" name="QualificationDate" type="xs:dateTime">
</xs:element>
<xs:element minOccurs="0" name="Status" nillable="true" type="tns:CoveredLifeStatusCodes">
</xs:element>
<xs:element minOccurs="0" name="TerminationDate" type="xs:dateTime">
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="CoveredLife" nillable="true" type="tns:CoveredLife" />
<xs:complexType name="Certificate">
<xs:complexContent mixed="false">
<xs:extension base="tns:BusinessObject">
<xs:sequence>
<xs:element minOccurs="0" name="Class" nillable="true" type="tns:Class">
</xs:element>
<xs:element minOccurs="0" name="CurrentEmploymentRecord" nillable="true" type="tns:EmploymentRecord">
</xs:element>
<xs:element minOccurs="0" name="CurrentIncome" nillable="true" type="tns:Income">
</xs:element>
<xs:element minOccurs="0" name="Dependents" nillable="true" type="tns:ArrayOfCoveredLife">
</xs:element>
<xs:element minOccurs="0" name="Division" nillable="true" type="tns:Division">
</xs:element>
<xs:element minOccurs="0" name="FamilyCategory" nillable="true" type="tns:FamilyCategoryCodes">
</xs:element>
<xs:element minOccurs="0" name="HealthCareSpendingAccountInformation" nillable="true" type="tns:HealthCareSpendingAccountInformation">
</xs:element>
<xs:element minOccurs="0" name="HireDate" type="xs:dateTime">
</xs:element>
<xs:element minOccurs="0" name="InsuredCoveredLife" nillable="true" type="tns:CoveredLife">
</xs:element>
<xs:element minOccurs="0" name="JobTitle" nillable="true" type="xs:string">
</xs:element>
<xs:element minOccurs="0" name="Number" nillable="true" type="xs:string">
</xs:element>
<xs:element minOccurs="0" name="PayrollNumber" nillable="true" type="xs:string">
</xs:element>
<xs:element minOccurs="0" name="Plan" nillable="true" type="tns:Plan">
</xs:element>
<xs:element minOccurs="0" name="RegionalAdministration" nillable="true" type="tns:RegionalAdministrativeInformation">
</xs:element>
<xs:element minOccurs="0" name="Section" nillable="true" type="tns:Section">
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="Certificate" nillable="true" type="tns:Certificate" />
<xs:complexType name="Policy">
<xs:complexContent mixed="false">
<xs:extension base="tns:Structurable">
<xs:sequence>
<xs:element minOccurs="0" name="Code" nillable="true" type="xs:string">
</xs:element>
<xs:element minOccurs="0" name="Certificates" nillable="true" type="tns:ArrayOfCertificate">
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="Policy" nillable="true" type="tns:Policy" />
<xs:complexType name="Class">
<xs:complexContent mixed="false">
<xs:extension base="tns:Structurable">
<xs:sequence>
<xs:element minOccurs="0" name="Code" nillable="true" type="xs:string">
</xs:element>
<xs:element minOccurs="0" name="EffectiveDate" type="xs:dateTime">
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="Class" nillable="true" type="tns:Class" />
<xs:complexType name="Plan">
<xs:complexContent mixed="false">
<xs:extension base="tns:Structurable">
<xs:sequence>
<xs:element minOccurs="0" name="Code" nillable="true" type="xs:string">
</xs:element>
<xs:element minOccurs="0" name="EffectiveDate" type="xs:dateTime" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="Plan" nillable="true" type="tns:Plan" />
<xs:complexType name="ArrayOfPolicy">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="Policy" nillable="true" type="tns:Policy" />
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfPolicy" nillable="true" type="tns:ArrayOfPolicy" />
<xs:complexType name="BenefitDecline">
<xs:complexContent mixed="false">
<xs:extension base="tns:BusinessObject">
<xs:sequence>
<xs:element minOccurs="0" name="ChangeEffectiveDate" nillable="true" type="xs:dateTime">
</xs:element>
<xs:element minOccurs="0" name="DeclineReason" nillable="true" type="tns:CancelReasonCodes">
</xs:element>
<xs:element minOccurs="0" name="Declined" nillable="true" type="xs:boolean">
</xs:element>
<xs:element minOccurs="0" name="LineOfBusinessCategory" nillable="true" type="tns:LineOfBusinessCategoryCodes">
</xs:element>
<xs:element minOccurs="0" name="ReapplicationReason" nillable="true" type="tns:ReapplicationReasonCodes">
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="BenefitDecline" nillable="true" type="tns:BenefitDecline" />
<xs:complexType name="ContactInformation">
<xs:complexContent mixed="false">
<xs:extension base="tns:BusinessObject">
<xs:sequence>
<xs:element minOccurs="0" name="CorrespondenceMethod" nillable="true" type="tns:CorrespondenceMethodCodes">
</xs:element>
<xs:element minOccurs="0" name="CorrespondenceNote" nillable="true" type="xs:string">
</xs:element>
<xs:element minOccurs="0" name="CorrespondenceType" nillable="true" type="tns:CorrespondenceTypeCodes">
</xs:element>
<xs:element minOccurs="0" name="Data" nillable="true" type="xs:string">
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="ContactInformation" nillable="true" type="tns:ContactInformation" />
<xs:complexType name="EmploymentRecord">
<xs:complexContent mixed="false">
<xs:extension base="tns:BusinessObject">
<xs:sequence>
<xs:element minOccurs="0" name="EffectiveDate" type="xs:dateTime">
</xs:element>
<xs:element minOccurs="0" name="Frequency" nillable="true" type="tns:FrequencyCodes">
</xs:element>
<xs:element minOccurs="0" name="HoursWorked" type="xs:decimal">
</xs:element>
<xs:element minOccurs="0" name="SalaryAmount" nillable="true" type="xs:decimal">
</xs:element>
<xs:element minOccurs="0" name="Type" nillable="true" type="tns:EmploymentTypeCodes">
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="EmploymentRecord" nillable="true" type="tns:EmploymentRecord" />
<xs:complexType name="Enrollment">
<xs:complexContent mixed="false">
<xs:extension base="tns:BusinessObject">
<xs:sequence>
<xs:element minOccurs="0" name="Policies" nillable="true" type="tns:ArrayOfPolicy">
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="Enrollment" nillable="true" type="tns:Enrollment" />
<xs:complexType name="HealthCareSpendingAccountInformation">
<xs:complexContent mixed="false">
<xs:extension base="tns:BusinessObject">
<xs:sequence>
<xs:element minOccurs="0" name="AllocationAmount" type="xs:decimal">
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="HealthCareSpendingAccountInformation" nillable="true" type="tns:HealthCareSpendingAccountInformation" />
<xs:complexType name="Income">
<xs:complexContent mixed="false">
<xs:extension base="tns:BusinessObject">
<xs:sequence>
<xs:element minOccurs="0" name="Amount" type="xs:decimal">
</xs:element>
<xs:element minOccurs="0" name="EffectiveDate" type="xs:dateTime">
</xs:element>
<xs:element minOccurs="0" name="Frequency" nillable="true" type="tns:FrequencyCodes">
</xs:element>
<xs:element minOccurs="0" name="Type" nillable="true" type="tns:IncomeTypeCodes">
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="Income" nillable="true" type="tns:Income" />
<xs:complexType name="RegionalAdministrativeInformation">
<xs:complexContent mixed="false">
<xs:extension base="tns:BusinessObject">
<xs:sequence>
<xs:element minOccurs="0" name="Country" nillable="true" type="xs:string">
</xs:element>
<xs:element minOccurs="0" name="ProvinceOfBilling" nillable="true" type="tns:ProvinceCodes">
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="RegionalAdministrativeInformation" nillable="true" type="tns:RegionalAdministrativeInformation" />
<xs:complexType name="Section">
<xs:complexContent mixed="false">
<xs:extension base="tns:BusinessObject">
<xs:sequence>
<xs:element minOccurs="0" name="Code" nillable="true" type="xs:string">
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="Section" nillable="true" type="tns:Section" />
<xs:complexType name="ArrayOfContactInformation">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="ContactInformation" nillable="true" type="tns:ContactInformation" />
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfContactInformation" nillable="true" type="tns:ArrayOfContactInformation" />
<xs:complexType name="ArrayOfDivision">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="Division" nillable="true" type="tns:Division" />
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfDivision" nillable="true" type="tns:ArrayOfDivision" />
<xs:complexType name="ArrayOfCertificate">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="Certificate" nillable="true" type="tns:Certificate" />
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfCertificate" nillable="true" type="tns:ArrayOfCertificate" />
<xs:complexType name="ArrayOfCoveredLife">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="CoveredLife" nillable="true" type="tns:CoveredLife" />
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfCoveredLife" nillable="true" type="tns:ArrayOfCoveredLife" />
<xs:complexType name="ArrayOfBenefitDecline">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="BenefitDecline" nillable="true" type="tns:BenefitDecline" />
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfBenefitDecline" nillable="true" type="tns:ArrayOfBenefitDecline" />
</xs:schema><!-- BusinessObjects Version 3.2.471 --> -
How To Remove Empty Node From Source XML
Hi,
How can I remove an empty node from the source xml in a XSLT mapping.
For e.g. If the source xml is like:
<SRC>
<Node1>SAP</Node2>
<Node2/>
<Node3>XI</Node3>
</SRC>
Then the xml should become:
<SRC>
<Node1>SAP</Node2>
<Node3>XI</Node3>
</SRC>
I need to do this because the output of my XSLT mapping is showing blank spaces for each blank node.
Thanks,
Abhishek.Use <xsl:if>
Or else you may find different options here
http://www.dpawson.co.uk/xsl/sect2/N3328.html#d4804e304
Regards,
Prateek -
How create a Value Mapping Table in XI 3.0?
Hi:
I wish make a single sample scenario where receiving data must be converted according to convertion table:
01 -
Legacy A | Legacy B -
M
Male: 01 | M
Female: 02 | F
And I don´t know how build it. Must I create anything in Integration Repository? (any special message mapping or function?).
Anyone know about weblog where explain step by step for "value mapping group" and "value mapping tables" creation?
Help me please.
Regards!!
David.Hi David,
You can create value mapping tables in Integration Directory.
First you have to create Value mapping group using menu Object>new>Value mapping Group
to Display value mapping you have to use Tools--> Value mapping.
Also refer to following link on help.sap.com
http://help.sap.com/saphelp_nw04/helpdata/en/13/ba20dd7beb14438bc7b04b5b6ca300/content.htm
In IR Graphical mapping tool, use the standard function Conversions-->Value mapping.
Hope this helps.
Rgds,
Sam Raju
Message was edited by: Sam Raju
Message was edited by: Sam Raju -
Remove xml node based on value
Hi,
we have to remove elements bases on the value.
for example consider below xml
<htl:room>
<htl:ratePlan>
<htl:freeNights>12</htl:freeNights>
<htl:promoSavings>undefined</htl:promoSavings>
<htl:tax>undefined</htl:tax>
</htl:ratePlan>
<htl:guestAllocation>1,2</htl:guestAllocation>
</htl:room>
We have to remove elements with value undefined and should construct a new xml as below
<htl:room>
<htl:ratePlan>
<htl:freeNights>12</htl:freeNights>
</htl:ratePlan>
<htl:guestAllocation>1,2</htl:guestAllocation>
</htl:room>
please help.
Thanksi assume that loc always corresponds to name. So to find the rows to remain is just a simple group by
with data as(
select 'aaa' name,'a1' loc,10 count from dual union all
select 'aaa','a1',0 from dual union all
select 'bbb','b1',0 from dual union all
select 'ccc','c1',0 from dual union all
select 'dcc','d1',11 from dual union all
select 'dcc','d1',0 from dual )
select
name
, loc
, max(count) cnt
from data
group by
name
, loc
order by
name
, loc
NAME LOC CNT
aaa a1 10
bbb b1 0
ccc c1 0
dcc d1 11to find the other is just a minus
with data as(
select 'aaa' name,'a1' loc,10 count from dual union all
select 'aaa','a1',0 from dual union all
select 'bbb','b1',0 from dual union all
select 'ccc','c1',0 from dual union all
select 'dcc','d1',11 from dual union all
select 'dcc','d1',0 from dual )
select name,loc,count from data
minus
select
name
, loc
, max(count) cnt
from data
group by
name
, loc
order by
name
, loc
NAME LOC COUNT
aaa a1 0
dcc d1 0so a delete would be
delete from data
where
(name,loc,count)
in
(select name,loc,count from data
minus ..regards -
Remove empty nodes in the target structure
Hi,
My scenario is IDoc-XI-JDBC.
For one IDoc I need to update data in 4 tables. But if idoc contains ATWRT node then it should update 4 tables if not only first two tables.
For the statement 3 and 4, i have done the following mapping.
[ATWRT][collapseContexts]-[exists]--[if then][statement3]
but in the target sturcture I am getting blank node as following:
<statement3/>.
And because of this blank statement JDBC Adapter is throwing an error.
Can anyone help me how to remove this blank node from target structure.Jwalith,
I hope you must have kept the Statement node occurrence as 0..xxxx(1 or n), if that's the case you don't need to check anything. Just map the ATWRT directly to Statement 3 and Statement 4.
By the way what's the occurence of ATWRT node ? I gave the above suggestion, keeping in mind that ATWRT node occurrence is 0..1.
If the occurrence of ATWRT is not 0..Unbounded, then you can also use the below simple UDF.
ATWRT >UDF>Statement3
ATWRT >UDF>Statement4
UDF - Advanced(Queue), with one Parameter (
if( ATWRT.length >0)
result.addValue("");
else
result.addSuppress();
Thanks,
raj. -
How can we remove empty space created in the flat file unintentionally
Hi Forums,
In our data flow, transactional data is flowing from one ODS(Acquisition Layer) to two different ODS's(Integration Layer) parallely. Error occured in first ODS(Acquisition Layer) i.e ODS was not getting activated for long time coz of empty space[#] in one of the infoobjects of a particular record. After manually deleting the request in two ODS's of Integration Layer & edited that particular record in PSA and reconstructed that deleted request form PSA the problem was solved.
This wrong entry is getting visible only at the time of ODS activation. Can any one suggest me a permanent solution for not occuring of empty space at the source system level or at SAP XI interface level or in the SAP BW system level?
Thanks in advanceHi,
If your ino object is of numeric type then check the condition if it is # (empty) then
replace with 0 (zero), if it is char. then make it SPACE..you can use this following statement in your transfer / update rule for the IO.
replace all occurances of '#' with ' '. (for Char.)
(for Numeric)
if COMM_STRUCTURE-XXXX is initial.
RESULT = 0.
endif.
Hope it helps..
assign points if useful.
Cheers,
Pattan. -
Hi All,
I have a question on value mapping.We have created a Value Mapping and maintained a GroupName for it.
Now we want to change the Source and Target Value and delete old values.So,do we need to create a new GroupName after changing Source and Target Value or will this work with Old GroupName also.
Regards,
SahanaHi Sahana,
Not sure what you meant by
Now we want to change the Source and Target Value and delete old values.So,do we need to create a new GroupName after changing Source and Target Value or will this work with Old GroupName also.
Adding or removing values in a value mapping group should be straight forward and you can use the same group name.
Regards,
Mark -
XI30 - Value Mapping Group ?
Hi,
Inside XI, I need to create several conversions.
I want to use a "Value Mapping" and not a "FixValue".
I succeed with a simple test with a value mapping...
But as I need to create about 30 value mappings, I need to know exactly what is a "value mapping group" in order to integrate it correctly?
<u>Example of conversion table</u>: UnitMeasurement (like table T006B of R/3)
<u>Source | Target</u>
Unit1 | U1
Unit2 | U2
... | ...
Unitn | Un
Currently inside XI30, I have created this value mapping:
Source Agency: BS_PC (Business System for PC)
Source Scheme: UnitMeasurement
Target Agency: BS_R3 (Business System for R/3)
Target Scheme: UnitMeasurement
<u>Source Value | Target value | Group name</u>
Unit1 | U1 |
Unit2 | U2 |
... | ... |
Unitn | Un |
Thanks.A Value Mapping Group helps you to keep values of different systems together and it is useful, when you want to maintain values for three or more business systems.
Example: You have three business systems A B C and have different values for Company Code in each system
A B C
0001 T100 A-01
0002 T200 A-02
0003 T300 A-03
Now you can maintain the values as pair of agencies:
A B Group Name
0001 T100 T100
0002 T200 T200
0003 T300 T300
And you can maintain the values belonging to the same group:
A 0001
B T100
C A-01
You need not maintain values for groups, so leave it empty, when you have only two different columns of values.
Regards
Stefan -
Hi All,
I can not get value mapping in XI 3.0 to work. Has anyone experience with this, the documentation is soo bad. This is what I have done:
In the Graphical mapper I used the object "Value mapping" and filled in the following parameters:
Value mapping context: http://sap.com/xi/XI
Source
Agency: System1
Schema: UnitSystem1
Target
Agency: System2
Schema: UnitSystem2
In the directory I created an Value mapping table with the same paremeters as above and filled in the table.
When I test the complete flow, the value mapping is not used. The unchanged values are just copied over to the target field.
Any help is appreciated.
Cheers,
FrankHi Colin,
In test Mode you can't test the value mapping, because the value mapping table is part of the Directory. Instead of the Value Mapping I tried "Fixed Values" and that works, but you can not re-used it.
If this advanced mapping guide explanes how to use the value mapping better then the standard "how to" mapping guide, please send it to me.
email: [email protected]
Cheers,
Frank -
How to put identical target value in value mapping table
Hi all ,
I am implementing a value mapping function .Problem is occuring for repetated target value.for ex: if key is GL001 GL002 GL003 and destination value is 4 5 4 then its creating problem for identical values i.e for both GL001 & GLOO3 its not accepting 4 .Same manner for many diffrent glncode i have identical values.not understanding how to deal with these identical values please guide me as its very urgent.
Regards,
SaurabhHi saurabh,
you can try this out....
First you create a value mapping table in ID like:
AWSYS GLNCODE
GLOO1 10
GLOO2 20
(without GLOO3).
now in your message mapping do the following mapping:
Contant[GLOO1]
|
|(then)
AWSYS-------------> equals---->if----------------->Value Mapping---->GLNCODE
| |(else)
| |
Constant[GLOO3]-----| AWSYS
**Reward points if helpful...
--Sankar Choudhury -
ABAP program and FB for value mapping replication
Hi,
we are using a 40B system and I want to use the value mapping replication in XI. To refill the data into the XI database I must write an ABAP and a function module to transfer the data out of R/3 into XI (via RFC). Has anybody an example how the program (and the FB) must look like? i.e I want to read table mvke and extract the materialnumber and the prodhierarchy.
Thanks and best regards
ArnoldHi Arnold,
First you need a table type with a structure like follows:
operation
groupid
context
identifier
agency
scheme
(corresponding to the Interface ValueMappingReplication)
All used data elements should have type string or charXX
for example: operation - char10, groupid - char32, rest - char120
Next you create a function module with attribute 'remote-enabled module'.
The import parameter is your new table structure.
Next you create an ABAP program. Here an example:
report z_value_mapping .
tables mvke.
data:
p_value_mapping type zvalue_mapping,
p_value_mapping_table type zvalue_mapping_table.
p_value_mapping-operation = 'Insert'.
p_value_mapping-context = 'http://xi.com/Material'.
select * from mvke where matnr between '170' and '501'.
check not mvke-prodh is initial.
* Create a value mapping group to join two entries.
* use a unique 32 digit number.
concatenate '00000000000000' mvke-prodh into p_value_mapping-groupid.
translate p_value_mapping-groupid using ' 0'.
* Store the mapping source as first entry to the group
p_value_mapping-identifier = mvke-matnr.
p_value_mapping-agency = 'SenderAgency'.
p_value_mapping-scheme = 'MATNR'.
append p_value_mapping to p_value_mapping_table.
* Store the mapping target as second entry to the group
p_value_mapping-identifier = mvke-prodh.
p_value_mapping-agency = 'ReceiverAgency'.
p_value_mapping-scheme = 'PRODH'.
append p_value_mapping to p_value_mapping_table.
endselect.
* Push data to XI
call function 'Z_VALUE_MAPPING' in background task
destination 'IS_XID'
exporting
value_mapping = p_value_mapping_table.
commit work.
Import the RFC to the Integration Builder, create a mapping between your RFC and the interface ValueMappingReplication.
Check this Blog for additional steps:
/people/sreekanth.babu2/blog/2005/02/23/value-mapping-replication
Choose names for context, agency and scheme which are useful your scenario.
Regards
Stefan -
Value Mapping - N:1 Mapping
I need to create a value mapping like this
A --> 1
B --> 2
C --> 2
D --> 2
E --> 3
So that if the source field has 'A' the value mapping returns 1 and if my source field has 'B' or 'C' or 'D' it should return 2.
When I create this in value mapping table, it doesnu2019t accept and gives an error saying it is a duplicate mapping entry.
I know that value map tables are mean to hold two way data mappings and hence doesnt allow what I'm trying to do here, but still is there a standard way to do this ?
I dont want to use FixValues function here since this value map table would be used by other message mappings too and hence if I go for a FixValues function I would have to create it in every mapping (hence not a good solution).
I also want to avoid non standard techniques like entering unique values in the value mapping table and later do a string function in the message mapping to cut out the actual value as mentioned by grube in some blog i read.I have already tried that and it doesnt accept duplicate entries in the targt values.
-
Value Mapping values..question
i have been through the value Mapping documentation, and we are trying to analyze a message Map where there are value maps, However we are not able to find the value maps maintained in ID when i select the tools --> value mapping and specify the context, agency and schema for the source values and agency and schema for target values...
Where is this table maintained, where can we view the values in it...?
Do we need any additional permissions to view this table.
When we test it the values dont show up in message mapping tests, however they do show up at runtime as they should..we need to edit and add some values to this table but are unable to find it...
Preetha> i have been through the value Mapping documentation, and we are trying to analyze a message Map where there are value maps, However we are not able to find the value maps maintained in ID when i select the tools --> value mapping and specify the context, agency and schema for the source values and agency and schema for target values...
>
> Where is this table maintained, where can we view the values in it...?
In ID under tools --> value mapping you need to create the value mapping groups and there specify the values.
>
> Do we need any additional permissions to view this table.
No.
> When we test it the values dont show up in message mapping tests, however they do show up at runtime as they should..we need to edit and add some values to this table but are unable to find it...
You can see the value only at RunTime and not while testing in test tab in message mapping. Go to ID open your value mapping group and there you can edit or add new entrie.
Regards,
Sarvesh -
Multiple source values to single target in value mapping
Hi Experts,
I have to acheive below thing using value mapping.
Source Target
ABC 111
CBA 111
XYZ 222
ZYX 222
When I am trying to do this in ID, It is not allowing me.
Is there a way to do this?
Regards,
PrasadSource Target
ABC 111
CBA 111
XYZ 222
ZYX 222
For the above source and target you have to create 2 value mapping groups.
In more detail I want to say is,
1. Just create your value mapping by using Source & target Agency & Schema.
2. Create your first value mapping group which will return the traget value as '111'.
3. Create your second value mapping group within the same Agency & Schema which will return you '222'.
While creating it If get any warning just ignore it..
Note: You can add multiple value mapping groups if you have different outputs for different sources.
Regards,
Sarvesh
Maybe you are looking for
-
How do i uninstall lightroom 4.4 and get back to 4.3?
I certainly made a mistake trying 4.4. I did a few things in 4.4 am not sure where the problem started, but i made numerous changes in photoshop (always updating the metadata) and things seemed fine. Then i created a new file in photoshop and did a
-
Hello, Many years ago I bought Photoshop CS5 in french. Waiting for the CD I downloaded the trial version. When I received the CD with the licence number, I only had to put the licence number in the trial version. Now I would like to put back CS5 in
-
Exporting Flash to Director WITH video
In Flash, I have created a digital camera, that, when a button is pressed, the screen changes from showing pictures to showing a video. This works all fine and well in Flash, however, it has to work in Director. Now I imported it into Director, obvio
-
Batch determination during operation and purchase
plz guide me for basic setting for batch define in different stage: scenario: *Roh material* steps: po creation migo: don't define batch user decision : to define batch Semifinished mater user can decide material consumption from
-
Purchased a phone number from the wrong Skype acco...
I mistakenly purchased a phone number before I created a new Skype account. Is there a step that would take THAT newly purchased phone number and transfer it to the new Skype account? If not, would I be able to get a refund? Thanks. Solved! Go to