Hi, Risking repetting other users advise, ckeck your code, specifically this first part: put ' <dynamicPricingFactor>' dpf_base +(-1) '</dynamicPricingFactor>';
if dpf_base eq . then do;
put ' <dynamicPricingFactor></dynamicPricingFactor>';
end; What is happening here? Whenever dpf_base is "." or not the first put statement always "prints" this first line: <dynamicPricingFactor> </dynamicPricingFactor>. But when dpf_base is eq "." then your if condition is true and a second line <dynamicPricingFactor></dynamicPricingFactor> is printed too. That's why you end up with two <dynamicPricingFactor> </dynamicPricingFactor> statements. What you have to do is then remove the first put and use the if else statement proposed earlier. That way only one <dynamicPricingFactor> </dynamicPricingFactor> will be "printed". Better yet use the solution proposed by Patrick: move= -1-missing(dpf_base);
put ' <dynamicPricingFactor>' dpf_base +move '</dynamicPricingFactor>'; This solution is actually very cleaver and its easier to read this way (my opinion). When i first see your post i actually thougth that you were lookink for something like this. But didn't know this approach. I'm not sure that i'm helping you but your code should look like this: options missing=""; move= -1-missing(dpf_base); put ' <dynamicPricingFactor>' dpf_base +move '</dynamicPricingFactor>'; put ' <dynamicPricingFactorPolicyCoverLangList>'; put ' <dynamicPricingFactorPolicyCoverLang>'; put ' <languageRef>'; put ' <externalIdentifier>FR</externalIdentifier>'; put ' </languageRef>'; a=translate(expl_base,'-','/'); put ' <explanation>' a '</explanation>'; put ' </dynamicPricingFactorPolicyCoverLang>'; put ' <dynamicPricingFactorPolicyCoverLang>'; put ' <languageRef>'; put ' <externalIdentifier>VLS</externalIdentifier>'; put ' </languageRef>'; put ' <explanation>' a '</explanation>'; *put ' <explanation>' translate(expl_base,'-','/') '</explanation>'; put ' </dynamicPricingFactorPolicyCoverLang>'; put ' </dynamicPricingFactorPolicyCoverLangList>'; put ' </dynamicPricingFactorPolicyCover>'; put '<dynamicPricingFactorPolicyCover>'; put '<productVersionCoverRef>'; put ' <externalIdentifier>' cover +(-1) '</externalIdentifier>'; put ' </productVersionCoverRef>'; put ' <isForNonMatch>true</isForNonMatch>'; put ' <hashCode1>' veh_driver_hashcode +(-1) '</hashCode1>'; put ' <hashCode2></hashCode2>'; Best Regards, João Moreira
... View more