Call template editor

Hi all!
I have been using NI Template Editor for a long time. It is a very very useful program, and it can be called form VA / VBA. Thats the reason why it is so useful. I would like to know how should I use this function/program from my own code. ( call parametrized Template Editor  e.g. form my pattern matcher program like in VBA/VA - for current Image.) 
I used system execute vi- which run standard *.exe files , but in this case, image file must be selected.
I would like to know how should I use T.E. in my own program, as flexible as possible like, VA/VBA - for current image!
Thank you very much!!!
+++ In God we believe, in Trance we Trust +++
[Hungary]
Solved!
Go to Solution.

Hi Durnek,
As far as I understand, you want to develop an application in LV which does Pattern Matching.
For this, you need a Template which you define in Template Editor.
In delopyed applications, the templates are predefined, in which case Template Editor is a great tool, but does not need to be called with every run.
Still, We have encountered similar requests, and we also have a product suggestion to embedd Template Editor in LV, just like VA.
We are hoping this feature will be available in the future.
Until then here are some parameters that could be called
 /newath -pm -gpm -gpm2 -d
launches the editor and opens the image located at the specified path.
The parameters -pm -gpm -gpm2 and -d are optional and allow to create a template of type pattern matching, geometric matching (legacy), new geometric matching and defect inspection respectively.
You can combine those parameters to create a template of the desired type. Only the specified tabs will be enabled. If you don't specify any optional parameters, all tabs are available.
/editath
edits the template located at the specified path.
This is the responsibility of the user to save the template manually within the interface, since the training interface is called by command line and there is no way for the calling application to know if the user OKs or cancels the editor.
One important point regarding calling the template using a command line: if the path contains a space, you need to use quotes, so that the exec knows that this is only one parameter.
For instance:
"Path to template Editor\NI Vision Template Editor.exe" "/new:\Images\8 bit\image.tif" -pm -gpm -d
Please reply if this fits your application needs 
Best regards,
Mircea

Similar Messages

  • Call Template Editor in LabVIEW

    Is it possible to call template editor in LV? I searched around and found using command prompt is asolution, but is there any VIs or a combination of VIs that can realize this function in new version Labview?
    Following is the link that calling template editor using command prompt:
    http://forums.ni.com/t5/Machine-Vision/call-template-editor/m-p/1081416/highlight/true#M27206
    Thanks for your kind help!

    Hello,
    you can open the tempate editor via the command prompt.
    Save the templates on disk and read them in your Labview program.
    Best regards,
    K
    https://decibel.ni.com/content/blogs/kl3m3n
    "Kudos: Users may give one another Kudos on the forums for posts that they found particularly helpful or insightful."

  • XML-23002: (Error) internal xpath error while calling template

    Hi,
    I have used call-template named Chemloop in my xslt in the following way as attached in the xsl file. But when I am testing this xsl file through the bpel transformation, getting the error XML-23002: (Error) internal xpath error. Using this xslt I am converting a flat file into a xml file. My xslt except the call template part is working fine. Please suggest me if I m doing anything wrong.
    XSLT:
    <?xml version="1.0" encoding="UTF-8" ?>
    <?oracle-xsl-mapper <!-- SPECIFICATION OF MAP SOURCES AND TARGETS, DO NOT MODIFY. -->
    <mapSources>
    <source type="WSDL">
    <schema location="../ReadASNNAEbizAlcanFileAdapter.wsdl"/>
    <rootElement name="SynchAdvancedShipmentNotice" namespace="http://oracle.com/EbizGateway/NA/SynchASN/V2"/>
    </source>
    </mapSources>
    <mapTargets>
    <target type="WSDL">
    <schema location="../ReadASNNAEbizAlcanFileAdapter.wsdl"/>
    <rootElement name="ShipNotice" namespace=""/>
    </target>
    </mapTargets>
    <!-- GENERATED BY ORACLE XSL MAPPER 11.1.1.6.0(build 111214.0600.1553) AT [TUE FEB 12 21:05:56 GMT+05:30 2013]. -->
    ?>
    <xsl:stylesheet version="2.0"
    xmlns:svcdoc="http://xmlns.oracle.com/Services/Documentation/V1"
    xmlns:aia="http://www.oracle.com/XSL/Transform/java/oracle.apps.aia.core.xpath.AIAFunctions"
    xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
    xmlns:xp20="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20"
    xmlns:bpel="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:pc="http://xmlns.oracle.com/pcbpel/"
    xmlns:bpm="http://xmlns.oracle.com/bpmn20/extensions"
    xmlns:alcebo="http://oracle.com/EbizGateway/NA/SynchASN/V2"
    xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns:ora="http://schemas.oracle.com/xpath/extension"
    xmlns:socket="http://www.oracle.com/XSL/Transform/java/oracle.tip.adapter.socket.ProtocolTranslator"
    xmlns:mhdr="http://www.oracle.com/XSL/Transform/java/oracle.tip.mediator.service.common.functions.MediatorExtnFunction"
    xmlns:oraext="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc"
    xmlns:dvm="http://www.oracle.com/XSL/Transform/java/oracle.tip.dvm.LookupValue"
    xmlns:hwf="http://xmlns.oracle.com/bpel/workflow/xpath"
    xmlns:jca="http://xmlns.oracle.com/pcbpel/wsdl/jca/"
    xmlns:med="http://schemas.oracle.com/mediator/xpath"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:ids="http://xmlns.oracle.com/bpel/services/IdentityService/xpath"
    xmlns:xdk="http://schemas.oracle.com/bpel/extension/xpath/function/xdk"
    xmlns:xref="http://www.oracle.com/XSL/Transform/java/oracle.tip.xref.xpath.XRefXPathFunctions"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:alcabcs="http://xmlns.oracle.com/pcbpel/adapter/file/T2FJAN/CreateASNNAEBIZAlcanProvABCSImpl/ReadASNNAEbizAlcanFileAdapter"
    xmlns:ldap="http://schemas.oracle.com/xpath/extension/ldap"
    exclude-result-prefixes="xsi xsl pc alcebo plnk wsdl jca xsd alcabcs aia bpws xp20 bpel bpm ora socket mhdr oraext dvm hwf med ids xdk xref ldap">
    <xsl:template match="/">
    <ShipNotice>
    <Header>
    <BOLNo>
    <xsl:value-of select="/alcebo:SynchAdvancedShipmentNotice/alcebo:AdvanceShipmentNotice/alcebo:ASNShipmentLevel/alcebo:D1DP1_1000/alcebo:BILL_OF_LADING_1000"/>
    </BOLNo>
    <TripNo>
    <xsl:value-of select="/alcebo:SynchAdvancedShipmentNotice/alcebo:AdvanceShipmentNotice/alcebo:ASNShipmentLevel/alcebo:D1DP1_1000/alcebo:TRIP_NAME_1000"/>
    </TripNo>
    <Action>
    <xsl:text disable-output-escaping="no"></xsl:text>
    </Action>
    <Attr1>
    <xsl:text disable-output-escaping="no"></xsl:text>
    </Attr1>
    <Attr2>
    <xsl:text disable-output-escaping="no"></xsl:text>
    </Attr2>
    <Attr3>
    <xsl:text disable-output-escaping="no"></xsl:text>
    </Attr3>
    <Attr4>
    <xsl:text disable-output-escaping="no"></xsl:text>
    </Attr4>
    <Attr5>
    <xsl:text disable-output-escaping="no"></xsl:text>
    </Attr5>
    </Header>
    <Shipment>
    <ShipDate>
    <xsl:value-of select="/alcebo:SynchAdvancedShipmentNotice/alcebo:AdvanceShipmentNotice/alcebo:ASNShipmentLevel/alcebo:D1DP1_1000/alcebo:DEPARTURE_DATE_1000"/>
    </ShipDate>
    <RouteCode>
    <xsl:value-of select="/alcebo:SynchAdvancedShipmentNotice/alcebo:AdvanceShipmentNotice/alcebo:ASNShipmentLevel/alcebo:D2DP2_1010[1]/alcebo:SHIP_METHOD_CODE_EXT4_1010"/>
    </RouteCode>
    <xsl:choose>
    <xsl:when test='/alcebo:SynchAdvancedShipmentNotice/alcebo:AdvanceShipmentNotice/alcebo:ASNShipmentLevel/alcebo:D2DP2_1010[1]/alcebo:SHIP_METHOD_CODE_EXT1_1010 = "R"'>
    <RateRouteCode>
    <xsl:value-of select="/alcebo:SynchAdvancedShipmentNotice/alcebo:AdvanceShipmentNotice/alcebo:ASNShipmentLevel/alcebo:D2DP2_1010[1]/alcebo:SHIP_METHOD_CODE_EXT3_1010"/>
    </RateRouteCode>
    </xsl:when>
    <xsl:otherwise>
    <RateRouteCode>
    <xsl:value-of select="/alcebo:SynchAdvancedShipmentNotice/alcebo:AdvanceShipmentNotice/alcebo:ASNShipmentLevel/alcebo:D2DP2_1010[1]/alcebo:SHIP_METHOD_CODE_EXT1_1010"/>
    </RateRouteCode>
    </xsl:otherwise>
    </xsl:choose>
    <xsl:choose>
    <xsl:when test='/alcebo:SynchAdvancedShipmentNotice/alcebo:AdvanceShipmentNotice/alcebo:ASNShipmentLevel/alcebo:D2DP2_1010[1]/alcebo:SHIP_METHOD_CODE_EXT1_1010 = "R"'>
    <CarrierCode>
    <xsl:value-of select="/alcebo:SynchAdvancedShipmentNotice/alcebo:AdvanceShipmentNotice/alcebo:ASNShipmentLevel/alcebo:D2DP2_1010[1]/alcebo:SHIP_METHOD_CODE_EXT3_1010"/>
    </CarrierCode>
    </xsl:when>
    <xsl:otherwise>
    <CarrierCode>
    <xsl:value-of select="/alcebo:SynchAdvancedShipmentNotice/alcebo:AdvanceShipmentNotice/alcebo:ASNShipmentLevel/alcebo:D2DP2_1010[1]/alcebo:SHIP_METHOD_CODE_EXT1_1010"/>
    </CarrierCode>
    </xsl:otherwise>
    </xsl:choose>
    <TransportModeCode>
    <xsl:value-of select="substring(/alcebo:SynchAdvancedShipmentNotice/alcebo:AdvanceShipmentNotice/alcebo:ASNShipmentLevel/alcebo:D2DP2_1010[1]/alcebo:SHIP_METHOD_CODE_EXT2_1010,1.0,1.0)"/>
    </TransportModeCode>
    <TransportModeType>
    <xsl:value-of select="normalize-space(/alcebo:SynchAdvancedShipmentNotice/alcebo:AdvanceShipmentNotice/alcebo:ASNShipmentLevel/alcebo:RTIN1_1030/alcebo:ROUTING_INSTRUCTIONS1_1030)"/>
    </TransportModeType>
    <xsl:choose>
    <xsl:when test='normalize-space(/alcebo:SynchAdvancedShipmentNotice/alcebo:AdvanceShipmentNotice/alcebo:ASNShipmentLevel/alcebo:D2DP2_1010[1]/alcebo:SHIP_METHOD_CODE_EXT1_1010) = "R"'>
    <TrailerNo>
    <xsl:value-of select="concat(/alcebo:SynchAdvancedShipmentNotice/alcebo:AdvanceShipmentNotice/alcebo:ASNShipmentLevel/alcebo:A1DL1_3600[1]/alcebo:DELIVERY_ATTRIBUTE1_3600,/alcebo:SynchAdvancedShipmentNotice/alcebo:AdvanceShipmentNotice/alcebo:ASNShipmentLevel/alcebo:A2DL2_3610[1]/alcebo:DELIVERY_ATTRIBUTE5_3610)"/>
    </TrailerNo>
    </xsl:when>
    <xsl:otherwise>
    <TrailerNo>
    <xsl:value-of select="normalize-space(/alcebo:SynchAdvancedShipmentNotice/alcebo:AdvanceShipmentNotice/alcebo:ASNShipmentLevel/alcebo:D2DP2_1010[1]/alcebo:EQUIPMENT_NUMBER_1010)"/>
    </TrailerNo>
    </xsl:otherwise>
    </xsl:choose>
    <SealNo>
    <xsl:value-of select="normalize-space(/alcebo:SynchAdvancedShipmentNotice/alcebo:AdvanceShipmentNotice/alcebo:ASNShipmentLevel/alcebo:D2DP2_1010[1]/alcebo:EQUIPMENT_SEAL_1010)"/>
    </SealNo>
    <Quantity>
    <xsl:value-of select='sum(/alcebo:SynchAdvancedShipmentNotice/alcebo:AdvanceShipmentNotice/alcebo:ASNShipmentLevel/alcebo:UnpackedOrder/alcebo:UnpackedItemDetail/alcebo:I3IT3_4520/alcebo:SHIPPED_QUANTITY_4520) + sum(format-number(/alcebo:SynchAdvancedShipmentNotice/alcebo:AdvanceShipmentNotice/alcebo:ASNShipmentLevel/alcebo:UnpackedOrder/alcebo:P1PO1_4000/alcebo:FREIGHT_TERMS_CODE_EXT3_4000,"##############0.00"))'/>
    </Quantity>
    <QuantityUOM>
    <xsl:value-of select="normalize-space(/alcebo:SynchAdvancedShipmentNotice/alcebo:AdvanceShipmentNotice/alcebo:ASNShipmentLevel/alcebo:D3DP3_1015[1]/alcebo:DELIVERY_TARE_WEIGHT_UOM_EXT1_1015)"/>
    </QuantityUOM>
    <Attr1>
    <xsl:text disable-output-escaping="no"></xsl:text>
    </Attr1>
    <Attr2>
    <xsl:text disable-output-escaping="no"></xsl:text>
    </Attr2>
    <Attr3>
    <xsl:text disable-output-escaping="no"></xsl:text>
    </Attr3>
    <Attr4>
    <xsl:text disable-output-escaping="no"></xsl:text>
    </Attr4>
    <Attr5>
    <xsl:text disable-output-escaping="no"></xsl:text>
    </Attr5>
    <ShipmentItems>
    <xsl:for-each select="/alcebo:SynchAdvancedShipmentNotice/alcebo:AdvanceShipmentNotice/alcebo:ASNShipmentLevel/alcebo:UnpackedOrder">
    <ShipmentItem>
    <ShipListNo>
    <xsl:value-of select='concat(substring("0000",1.0,4.0 - string-length(string(position()))),string(position()))'/>
    </ShipListNo>
    <OrderNo>
    <xsl:value-of select="normalize-space(alcebo:P1PO1_4000/alcebo:PURCHASE_ORDER_NUMBER_4000)"/>
    </OrderNo>
    <LineNo>
    <xsl:value-of select="normalize-space(alcebo:UnpackedItemDetail/alcebo:I2IT2_4510[1]/alcebo:CUST_PO_LINE_NUM_4510)"/>
    </LineNo>
    <ItemNoXref>
    <xsl:value-of select="normalize-space(alcebo:UnpackedItemDetail/alcebo:I1IT1_4500[1]/alcebo:BUYER_PART_NO_4500)"/>
    </ItemNoXref>
    <AlcoaPartNo>
    <xsl:value-of select="normalize-space(alcebo:UnpackedItemDetail/alcebo:I1IT1_4500[1]/alcebo:SUPPLIER_PART_NUMBER_4500)"/>
    </AlcoaPartNo>
    <Quantity>
    <xsl:value-of select="sum(alcebo:UnpackedItemDetail/alcebo:I3IT3_4520/alcebo:SHIPPED_QUANTITY_4520)"/>
    </Quantity>
    <QuantityUOM>
    <xsl:value-of select="normalize-space(alcebo:UnpackedItemDetail/alcebo:I3IT3_4520[1]/alcebo:ORDER_QUANTITY_UOM_INT_4520)"/>
    </QuantityUOM>
    <TareWeight>
    <xsl:value-of select='format-number(alcebo:P1PO1_4000/alcebo:FREIGHT_TERMS_CODE_EXT3_4000,"##############0.##")'/>
    </TareWeight>
    <TareWeightUOM>
    <xsl:value-of select="normalize-space(alcebo:UnpackedItemDetail/alcebo:I3IT3_4520[1]/alcebo:ORDER_QUANTITY_UOM_INT_4520)"/>
    </TareWeightUOM>
    <Attr1>
    <xsl:text disable-output-escaping="no"></xsl:text>
    </Attr1>
    <Attr2>
    <xsl:text disable-output-escaping="no"></xsl:text>
    </Attr2>
    <Attr3>
    <xsl:text disable-output-escaping="no"></xsl:text>
    </Attr3>
    <Attr4>
    <xsl:text disable-output-escaping="no"></xsl:text>
    </Attr4>
    <Attr5>
    <xsl:text disable-output-escaping="no"></xsl:text>
    </Attr5>
    <xsl:for-each select="alcebo:UnpackedItemDetail">
    <Bundle>
    <LotNo>
    <xsl:value-of select="alcebo:DeliveryDetail/alcebo:LSDET_5500[1]/alcebo:LOT_NUMBER_5500"/>
    </LotNo>
    <SubLotNo>
    <xsl:value-of select="alcebo:DeliveryDetail/alcebo:EX02_5591[1]/alcebo:DSNO_LEV06_EXT09_5591"/>
    </SubLotNo>
    <Quantity>
    <xsl:value-of select="alcebo:I3IT3_4520[1]/alcebo:SHIPPED_QUANTITY_4520"/>
    </Quantity>
    <QuantityUOM>
    <xsl:value-of select="alcebo:I3IT3_4520[1]/alcebo:ORDER_QUANTITY_UOM_INT_4520"/>
    </QuantityUOM>
    <Pieces>
    <xsl:value-of select="alcebo:DeliveryDetail/alcebo:EX02_5591[1]/alcebo:DSNO_LEV06_EXT10_5591"/>
    </Pieces>
    <Attr1>
    <xsl:text disable-output-escaping="no"></xsl:text>
    </Attr1>
    <Attr2>
    <xsl:text disable-output-escaping="no"></xsl:text>
    </Attr2>
    <Attr3>
    <xsl:text disable-output-escaping="no"></xsl:text>
    </Attr3>
    <Attr4>
    <xsl:text disable-output-escaping="no"></xsl:text>
    </Attr4>
    <Attr5>
    <xsl:text disable-output-escaping="no"></xsl:text>
    </Attr5>
    <!-- User Defined Templates -->
    <xsl:call-template name="Chemloop">
    <xsl:with-param name="i">1</xsl:with-param>
    </xsl:call-template>
    </Bundle>
    </xsl:for-each>
    </ShipmentItem>
    </xsl:for-each>
    </ShipmentItems>
    </Shipment>
    </ShipNotice>
    </xsl:template>
    <xsl:template name="Chemloop">
    <xsl:param name="i"/>
    <xsl:variable name="ChemRow"
    select="concat(/alcebo:DeliveryDetail[position()]/alcebo:EX01_5590[1]/alcebo:DSNO_LEV06_EXT01_5590,/alcebo:DeliveryDetail[position()]/alcebo:EX01_5590[1]/alcebo:DSNO_LEV06_EXT02_5590,/alcebo:DeliveryDetail[position()]/alcebo:EX01_5590[1]/alcebo:DSNO_LEV06_EXT03_5590,/alcebo:DeliveryDetail[position()]/alcebo:EX01_5590[1]/alcebo:DSNO_LEV06_EXT04_5590)"/>
    <xsl:variable name="ChemBlock"
    select="substring($ChemRow,1+($i-1)*33,33)"/>
    <xsl:if test="$ChemBlock!=' '">
    <ChemicalAnalysis>
    <ElementName>
    <xsl:value-of select="substring($ChemBlock,1,5)"/>
    </ElementName>
    <RNDValue>
    <xsl:value-of select="substring($ChemBlock,6,15)"/>
    </RNDValue>
    <ValueQualifier>
    <xsl:value-of select="substring($ChemBlock,21,2)"/>
    </ValueQualifier>
    <NumDecimals>
    <xsl:value-of select="substring($ChemBlock,23,3)"/>
    </NumDecimals>
    <DropNo>
    <xsl:value-of select="substring($ChemBlock,26,8)"/>
    </DropNo>
    </ChemicalAnalysis>
    </xsl:if>
    <xsl:if test="($ChemBlock=' ') and $i=1">
    <xsl:message terminate="yes">No Chemical data found</xsl:message>
    </xsl:if>
    <xsl:if test="$i &lt;= 26">
    <xsl:call-template name="Chemloop">
    <xsl:with-param name="i">
    <!-- Increment index-->
    <xsl:value-of select="$i + 1"/>
    </xsl:with-param>
    </xsl:call-template>
    </xsl:if>
    </xsl:template>
    </xsl:stylesheet>

    I can't get what are you trying to achieve by a construction like bellow...
    /alcebo:DeliveryDetail[position()]
    Remember XSLT is not a procedural language... a selector like /alcebo:DeliveryDetail[position() = $var] or just /alcebo:DeliveryDetail[$var] would make more sense...
    Cheers,
    Vlad

  • XSLT Mapping - problem with prefixes when calling template

    Hi all,
    I am having a problem with using an XSLT mapping in XI to combine various fields from 2 input messages of different structures into a single output message.  I understand that XI puts a wrapper around the 2 input messages so the structure of the XML I am mapping is:
    <?xml version="1.0" encoding="UTF-8"?>
    <ns2:Messages xmlns:ns2="http://sap.com/xi/XI/SplitAndMerge">
    <ns2:Message1>
    <ns:(root of first message)>
    </ns:(root of first message)>
    </ns2:Message1>
    <ns2:Message2>
    <ns:(root of second message)>
    </ns: (root of second message)>
    </ns2:Message2>
    </ns2:Messages>
    Currently my XSL looks like the following:
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ns="http://example.co.uk/example" xmlns:ns2="http://sap.com/xi/XI/SplitAndMerge" xmlns:javamap="java:systemDate.CurrentDate" version="2.0">
    <xsl:output method="xml" version="1.0" encoding="UTF-8"/>
    <xsl:param name="inputparam"/>
    <xsl:template match="ns2:Messages">
    ...<xsl:calltemplate name="FormattingTemplate"/>
    </xsl:template>
    <xsl:template name="FormattingTemplate">
    </xsl:template>
    </xsl:stylesheet>
    When I test the mapping it works fine until it calls the FormattingTemplate.  Then it throws out a "transformer exception" error saying the prefix 'ns2' is not mapped to a namespace.
    If anyone could tell me where I am going wrong I would be very grateful.
    Thanks,
    Mike

    Hi Udo,
    Thanks for your reply.
    When testing the stylesheet locally with XMLSpy, it works fine, but I have just noticed that it adds information in the root tag of the target message as follows:
    <(root of target message) xmlns:javamap="java:systemDate.CurrentDate" xmlns:ns="http://example.co.uk/example" xmlns:ns2="http://sap.com/xi/XI/SplitAndMerge">
    I checked the root tag of the target message in XI and it does not automatically add this information. Thus I added it in my stylesheet so the information above is projected in the target message, but the same error message appears when the call template function is called.  Do you know if I need to somehow add a namespace to templates other than the main one? If so, do you know how I go about doing that?
    Thanks,
    Mike

  • How to make custom Metadata accessible in Text Template Editor ?

    Hi all.
    I used Lightroom SDK to create a plugin generating custom set of Metadata (for LR5) to manage images as produced items (printed and framed photos).
    In order to be able to create usefull lists of items, I would need to be able to print this metadata fields on contact Sheets.
    This is the only functionality that prevents me from using Lightroom as a database for produced artworks, beeing able to manage exhibitions, stock locations, sales etc...
    Guess this means I have to make those new fields accessible in the Text Template Editor that allows user to compose an aggregated text from various type of metadata for printing or slideshows.
    But seems that only the original sets of metadata appears in Text Template Editor, not the one created by my plugin.
    Is there a way to add this functionnality to my plugin ?
    Thank you very much.

    First let me say I have no idea what you mean by Text Template Editor.
    mbrch wrote:
    Is there a way to add this functionnality to my plugin ?
    3 ways:
    ======
    1. If metadata definitions are available in metadata provider module without running plugin initialization function (i.e. as on-the-fly compilable lua), then Jeffrey Friedl's Metadata Viewing Preset Editor will support it. (this is the normal case, the other case would be if plugin init computes a global variable that is returned by metadata provider module instead).
    2. You can edit a metadata viewing preset manually, by placing a .lrtemplate file in 'Metadata Field Lists' folder - in with your other presets (is that what you meant by text template editor?). - see example below.
    3. Define a tagset factory for your plugin and return the metdata viewing preset options from the tagset factory implementation file - there are instructions in the programmer's guide.
    Example below:
    return {
       items = {
             formatter = "com.adobe.label",
             label = "File/Folder"
          "com.robcole.photoName",
          "com.robcole.folderPath",
             formatter = "com.adobe.label",
             label = ""
          'com.robcole.developSettings.ProcessVersion', -- individual develop settings can be included like this.
          'com.robcole.developSettings.CameraProfile', -- individual develop settings can be included like this.
             formatter = "com.adobe.label",
             label = ""
             formatter = "com.adobe.label",
             label = "Exif Metadata"
          'com.robcole.exif.AELockButton',
          'com.robcole.exif.ActiveD-Lighting',
          -- add more here...
          'com.robcole.exif.' -- "help" item - remove this item once you've got the hang of this...
       title = "Exif Select",
       id = "Exif_Select_382790710"
    Rob

  • Problem with xsl:template and call-template

    Hi
    in XSQL i am getting one row like this
    <REASON_FOR_REJECTION>1.Overhead line is not existing in front of the premises,2.The distance from the pole to the serice is more than 30 meters.,3.Another service is existing in the same premises with arrears.</REASON_FOR_REJECTION>
    In the above String for every comma i want to put <br>
    the output should come like this:
    1.Overhead line is not existing in front of the premises
    2.The distance from the pole to the serice is more than 30 meters.
    3.Another service is existing in the same premises with arrears
    i have written xsl like this;i am getting this error;
    XSQL-011: Error processing XSLT stylesheet: ../xsl/CMS48_RejectionLetter1.xsl
    (Error) Template 'ROWSET/ROW/REASON_FOR_REJECTION' invoked but not defined.
    wat's wrong with this code?
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:java="http://xml.apache.org/xslt/java" exclude-result-prefixes="java" version="1.0">
    <xsl:template match="/">
    <html>
    <body Class='Ecrm_Body'>
    <xsl:apply-templates/>
    </body>
    </html>
    </xsl:template>
    <xsl:template match="ROW">
    <p>
    <xsl:apply-templates select="REASON_FOR_REJECTION"/>
    </p>
    </xsl:template>
    <xsl:template match="REASON_FOR_REJECTION">
         <xsl:param name="REASON_FOR_REJECTION"/>
    <xsl:variable name="year"
    select="substring-before(.,',')"/>
    <xsl:choose>
    <xsl:when test="string-length($year) > 0">
    <td><xsl:value-of select="$year"/></td>
         <xsl:call-template name="ROWSET/ROW/REASON_FOR_REJECTION">
    <xsl:with-param name="REASON_FOR_REJECTION">
              <xsl:value-of select="substring-after($REASON_FOR_REJECTION,',')"/>
    </xsl:with-param>
    </xsl:call-template>
    </xsl:when>
    <xsl:otherwise>
    <td><xsl:value-of select="$REASON_FOR_REJECTION"/></td>
    </xsl:otherwise>
    </xsl:choose>
    </xsl:template>
    </xsl:stylesheet>

    <xsl:call-template name="ROWSET/ROW/REASON_FOR_REJECTION">
    This looks for a template defined like this:
    <xsl:template name="ROWSET/ROW/REASON_FOR_REJECTION">
    not one defined like this:
    <xsl:template match="ROWSET/ROW/REASON_FOR_REJECTION">

  • NameSpace not recognized in Call-template

    I have declared name space
    xmlns:StringUtils="http://www.oracle.com/XSL/Transform/java/com.xyz.xyz.utils.StringUtils"
    as part of the stylesheet element.
    When I use this name space in calculating a variables value XSLT processor picks up properly. But when used as part of Call-template with-param element name space is not recognised and we get XSLT exception XSL-1008 (Name space prefix StringUtils used but not declared).
    This error does not come when we use oraxsl but comes when we use oracle.xml.parser.v2.XSLProcessor.processXSL
    Jar file being used
    xmlparserv2.jar came as part of Oracle8.1.7.
    We have a work around for now, but any Idea why It won't recognize the name space when used as part of the with-param element.
    Syntax of with-param
    with-param name="pXYZ" select="StringUtils:multiply($pvalue1,100)"/>
    Thanks
    Ramu Vavilala

    Hi
    I need a help from the same problem.
    I am getting the same error ie: Namespace prefix 'http' used but not declared
    Actually the error is obtained when i use
    "http://www.glode.com// in one the variables in xsl Or if
    i pass a param with "http://www.globe.com" like this.
    String plsql_ret_url = "http:/www.globe.com"
    g_gx_xsl.setParam("p_url", plsql_ret_url);
    In the xsl sheet it is defined as: <xsl:param name="p_url" />
    Do we need to do some modification to the url to use
    in xsl stylesheets.
    Can you please help me how to solve this.
    thanks a lot in advance
    Yugandhar
    null

  • Xslt problem call-template

    Hi,
    I have a problem with call-template. I have passed some parameter with call-template tag and used that parameter in the conditional check tag <xsl:if> i am getting the error. Can any body tell how to use this? I actuall want to dynamically pass the tag name as the parameter and check the attribute value of the tag passed in the if condition and then i want to person some action. How can i do it?
    Here is the call-template code:
    <xsl:call-template name="selected-unselected">
    <xsl:with-param name="currentTag">motor-carrier</xsl:with-param>
    </xsl:call-template>
    Here is the template definition:
    <xsl:template name="selected-unselected">
         <xsl:param name="currentTag">Quick-Quote</xsl:param>
         <xsl:if test="./{$currentTag}/@selected='true'">
              <xsl:text>checked</xsl:text>
         </xsl:if>
         <xsl:if test="./{$currentTag}/@selected='false'">
              <xsl:text>Unchecked</xsl:text>
         </xsl:if>
    </xsl:template>
    Here is the sample xml code:
    <motor-carrier selected="true"/>
    <motor-truck selected="false"/>
    <sched-mobile-equip selected="false"/>
    Here instead of writing the condition check for every tag i want to write it once and dynamically pass the tag name as parameter to the template. If the attribute of the tag has value true then one message should be displayed otherwise a different message should be displayed.

    Hi,
    I have a problem with call-template. I have passed
    sed some parameter with call-template tag and used
    that parameter in the conditional check tag <xsl:if>
    i am getting the error. Can any body tell how to use
    this? I actuall want to dynamically pass the tag name
    as the parameter and check the attribute value of the
    tag passed in the if condition and then i want to
    person some action. How can i do it?
    Here is the call-template code:
    <xsl:call-template name="selected-unselected">
    <xsl:with-param
    ram name="currentTag">motor-carrier</xsl:with-param>
    </xsl:call-template>
    Here is the template definition:
    <xsl:template name="selected-unselected">
    <xsl:param
    m name="currentTag">Quick-Quote</xsl:param>
         <xsl:if test="./{$currentTag}/@selected='true'">
              <xsl:text>checked</xsl:text>
         </xsl:if>
         <xsl:if test="./{$currentTag}/@selected='false'">
              <xsl:text>Unchecked</xsl:text>
         </xsl:if>
    </xsl:template>
    Here is the sample xml code:
    <motor-carrier selected="true"/>
    <motor-truck selected="false"/>
    <sched-mobile-equip selected="false"/>
    Here instead of writing the condition check for every
    tag i want to write it once and dynamically pass the
    tag name as parameter to the template. If the
    attribute of the tag has value true then one message
    should be displayed otherwise a different message
    should be displayed.try this:
    <xsl:template name="selected-unselected">
         <xsl:paramm name="currentTag">Quick-Quote</xsl:param>
         <xsl:if test="./*[name()=$currentTag]/@selected='true'">
              <xsl:text>checked</xsl:text>
         </xsl:if>
         <xsl:if test="./*[name()=$currentTag]/@selected='false'">
              <xsl:text>Unchecked</xsl:text>
         </xsl:if>
    </xsl:template>

  • Xsl:import and xsl:call-template errors for xslt in mediator (ORAMED-03601)

    Hello,
    I decided for performance issues with bpel execution to use a mediator instead.
    In my requester i have a mediator that justs recieves an xml message, uses an xsl transformation (version 2) on that message and then sends it to the EBS.
    The xsl file that's works correctly when used in a bpel process has both <xsl:import..../>and <xsl:call_template.../> tags.
    When i tried and used the same xsl in the mediator i get an ORAMED-03601 error:
    ORAMED-03601:[Invalid transformer configuration]Unable to create transformer. It could be because of transformation file or configuration issues. Reason : "xsl/Xform_PriceListListABMReqMsg_to_PriceListEBMReqMsg.xsl"Possible Fix:Check log file for any exceptions and contact Oracle Support Services for further help
    It works correctly again if i comment/remove all the imports and call-template and incorporate them in the xsl file itself.
    Do anyone know if there are some limitations using xsl in a mediator instead of a bpel?

    Hi,
    I have a problem with call-template. I have passed
    sed some parameter with call-template tag and used
    that parameter in the conditional check tag <xsl:if>
    i am getting the error. Can any body tell how to use
    this? I actuall want to dynamically pass the tag name
    as the parameter and check the attribute value of the
    tag passed in the if condition and then i want to
    person some action. How can i do it?
    Here is the call-template code:
    <xsl:call-template name="selected-unselected">
    <xsl:with-param
    ram name="currentTag">motor-carrier</xsl:with-param>
    </xsl:call-template>
    Here is the template definition:
    <xsl:template name="selected-unselected">
    <xsl:param
    m name="currentTag">Quick-Quote</xsl:param>
         <xsl:if test="./{$currentTag}/@selected='true'">
              <xsl:text>checked</xsl:text>
         </xsl:if>
         <xsl:if test="./{$currentTag}/@selected='false'">
              <xsl:text>Unchecked</xsl:text>
         </xsl:if>
    </xsl:template>
    Here is the sample xml code:
    <motor-carrier selected="true"/>
    <motor-truck selected="false"/>
    <sched-mobile-equip selected="false"/>
    Here instead of writing the condition check for every
    tag i want to write it once and dynamically pass the
    tag name as parameter to the template. If the
    attribute of the tag has value true then one message
    should be displayed otherwise a different message
    should be displayed.try this:
    <xsl:template name="selected-unselected">
         <xsl:paramm name="currentTag">Quick-Quote</xsl:param>
         <xsl:if test="./*[name()=$currentTag]/@selected='true'">
              <xsl:text>checked</xsl:text>
         </xsl:if>
         <xsl:if test="./*[name()=$currentTag]/@selected='false'">
              <xsl:text>Unchecked</xsl:text>
         </xsl:if>
    </xsl:template>

  • Issue with Capturing Long text using CALL METHOD EDITOR- GET_TEXT_AS_STREAM

    HI Experts,
    Standard Long text is capturing using CALL METHOD EDITOR->GET_TEXT_AS_STREAM
         but not working for Custom Long text – Only changes
    Here is the Issue:
    1)      Created Custom Long text in TAB. --> Good
    2)      Entered few lines in custom Long text  --> Good
             Click on Standard Tab , Leaving Custom tab and Custom Long text-->Good
    4)      In PAI of Custom Tab – Changes captured using CALL METHOD 1 ( See below Code 1)--> Good
    5)      Entered few lines in Standard Long text in Standard Tab -->Good
    6)      Click another Standard Tab
    7)      In PAI of Standard Tab – Changes captured using CALL MEHTOD 2 ( See Below Code 2)-->Good
    8)      Come back to Standard Tab / Standard Long Text , Enter few more lines.
    9)      Change the Tab , IN PAI of Standard Tab/Standard Text , Changes Captured using CALL METHOD2 ( See Below CODE 3) --> Good
    10)   Go to Custom Tab , Custom Long text , Entered few more lines--> Good
    11)   Click on any other tab, Triggered again PAI of Custom tab / Custom Long text using Call Method1 ( See Below Code 4) -->Good triggered PAI same CALL METHOD TEXT_EDITOR1->GET_TEXT_AS_STREAM.
    12)   But additional lines are not captured , saying ZERO LINES in Internal Table and IF_MODIFIED = NO  -->Issues lies here.
    CODE1 ( Custom Long text entry capturing – First Few Lines )
    Custom Long text Entries are stored in LS_OUTTAB-TEXT first time when entered few lines and LV_MOD is 1.
    PAI of Custom tab
    CALL METHOD TEXT_EDITOR1->GET_TEXT_AS_STREAM
            EXPORTING
              ONLY_WHEN_MODIFIED     = CL_GUI_TEXTEDIT=>TRUE
            IMPORTING
              TEXT                                       = LS_OUTTAB-TEXT ( FIlled with Lines entered in custom long text )
              IS_MODIFIED            = LV_MOD ( Value 1 , Modified )
            EXCEPTIONS
              ERROR_DP               = 1
              ERROR_CNTL_CALL_METHOD = 2
              OTHERS                 = 3
    CODE2 ( Standard Long Text Entry Capturing – First Few Lines )
    Standard Long text Entries are stored in SELECTED_TEXT first time when entered few lines and FLAG_MODIFIED is 1.
    PAI of Standard tab
       CALL METHOD EDITOR->GET_TEXT_AS_STREAM
          EXPORTING
            ONLY_WHEN_MODIFIED = YTRUE ( Value 1 , Modified )
          IMPORTING
            TEXT                               = SELECTED_TEXT ( FIlled with Lines entered in standard long text )
            IS_MODIFIED        = FLAG_MODIFIED.
    CODE 3 ( Standard Long Text Entry Capturing – Second time Few Lines )
    Standard Long text Entries are stored in SELECTED_TEXT  second  time when entered few lines and FLAG_MODIFIED is 1.
    PAI of Standard tab
       CALL METHOD EDITOR->GET_TEXT_AS_STREAM
          EXPORTING
            ONLY_WHEN_MODIFIED = YTRUE
          IMPORTING
            TEXT                               = SELECTED_TEXT ( FIlled with Lines entered in standard long text )
            IS_MODIFIED        = FLAG_MODIFIED. ( Value 1 , Modified )
    CODE4 ( Custom Long text entry capturing – Second Time Few Lines )
    Custom Long text Entries are not stored in LS_OUTTAB-TEXT Second Time when entered few lines and LV_MOD is 0.
    PAI of Custom tab
    CALL METHOD TEXT_EDITOR1->GET_TEXT_AS_STREAM
            EXPORTING
              ONLY_WHEN_MODIFIED     = CL_GUI_TEXTEDIT=>TRUE
            IMPORTING
              TEXT                                       = LS_OUTTAB-TEXT  ( ZERO ENTRIES )
              IS_MODIFIED            = LV_MOD   ( NOT MODIFIED Flag )
            EXCEPTIONS
              ERROR_DP               = 1
              ERROR_CNTL_CALL_METHOD = 2
              OTHERS                 = 3
    Can anyone help me out of this.
    With Regards,
    Bala M

    Excellent Eitan,
    Here is what I am trying to Achieve.
    In Create Notification IW21 , They need 5 Long Text in Custom Tab ( Say Tab Name is MBR ).
    TAB1 NOTIFICATION Standard Information , TAB2 REFERENCE OBJ , TAB 3 MalFunction , Breakdown Standard one...... TAB 7 ( Custom Tab ).
    In Custom Tab , I added 5 LONG TEXT ( its 5 WHY Concept ).
    When the User enters data in 5 Long text , it should store long text along with Notification number when save.
    But Notification number will be generated @ the time of SAVE , but before that its just shows as
    %0000000001 ( and Number will be generated 1000065479) at Save.
    How to achive this .
    I did this:
    Added 5 Custom Container. and In PBO / PAI
      PROCESS BEFORE OUTPUT.
    MODULE STATUS_0100.
    PROCESS AFTER INPUT.
    MODULE USER_COMMAND_0100.
    IN PBO
       CREATE OBJECT TEXT_EDITOR1 ,    CREATE OBJECT TEXT_EDITOR2,    CREATE OBJECT TEXT_EDITOR3 like wise 5
       CALL METHOD TEXT_EDITOR1->SET_TEXT_AS_R3TABLE ,    CALL METHOD TEXT_EDITOR2->SET_TEXT_AS_R3TABLE .. Like wise 5 , So when the user Click on Custom Tab ( MBR ).
    It give 5 Long text.
    When he click tab1 or tab2 or tab3 .. and again tab MBR , still data is available.
    How to store this data for future retrival ( IW22 or IW23 ) ?
    Its working fine when I enter first time and goes here and there and finall save .
    IN SAVE BADI , I imported the Long text and created Standard Text SO10 with Notification Number with LONG1 , LONG2 .. means 1000065479LONG1 as standard text.
    But not working when I entered first time and go to tab1 and tab2 and then to MBR tab and added few more lines , its not exporting full lines and in IMPORT ( SAVE BADI ) giving ZERO Lines.
    Please help and thanks for your quick response.

  • Supporting drilldowns in BIP reports defined in Web Layout Template Editor

    Hi Experts,
    We have a requirement to show a table in a BIP Report defined in a web layout template editor and within this report, if there is drilldown on one of the columns, we would want to display more details in an additional column to be displayed afresh. Also, we have a requirement to display the same whenever there is a selection from a report prompt. In addition, is such a drill down feasible from within a graph? Is this achievable? We know this is feasible in OBIEE - not sure about BIP. Any pointers in this direction is appreciated!
    Regards

    Hi Sripathy, I can't thank you enough for the help !!! We looked for all kinds of documentation and was never able to find exact information.
    Also, do you mind if we email you if we run into more problems ? We are new to this. If you think it's ok, my email is [email protected] If not, thanks again, at least this will get me started.

  • Inline XSLT Call Template within Scripting Functoid logic needed

    In my Scripting Functoid, Config Functoid Script, Script type is Inline XSLT Call Template code is as follows.
    <xsl:template name="CanadaInformation">
    <xsl:param name="CanadaClientCd" />
    <xsl:param name="CanadaStatCd" />
    <xsl:element name="CanadaStatus">
       <xsl:choose>
          <xsl:when test="string-length($CanadaStatCd) > 0">
               <xsl:value-of select="$CanadaStatCd"/>
           </xsl:when>
           <xsl:otherwise>
               <xsl:value-of select="$CanadaClientCd"/>
           </xsl:otherwise>
        </xsl:choose>
       </xsl:element>
    </xsl:template>
    In this test case I think the Scripting Functoid is expecting 2 Parameters as input and in most cases the 2 input parameters will have data coming in, but in negative testing I have a case where the 2nd parameter is not passing any data (Value Mapping is
    coming from a Table lookup and the the input is blank, so the table lookup is not executed).
    Instead of trying to test for the length of the string of Parm 2 (which in the negative case there is no value for Parm2), I was wondering if there was a way to count the actual number of Parms being read into the XSLT. In the cases with my positive test,
    the number will be 2 and in the negative case, the number will be one.
    Or is there a way to confirm that there is something in the 2nd Parm.
    Thank you!

    I don't think there is a way count the number of parameter in XSLT (or even in any programing language's procedural calls). Where would execute the code/XSLT to check the count-With in your above "CanadaInformation" template?. What your looking for
    is something at engine level, i.e. is count the number of parameters being read and pass the control based on the number of parameters being read/passed.
    Or close option for this if you have something like overloaded functions/template. In XSLT we don't have anything like overloaded functions/templates.
    If you don't pass/link two parameter, you would error as "The number of inputs to the scripting functoid does not match with the number of inputs expected by the xsl:call-template"
    Your above code shall do the check for value of the parameter. Your code shall handle if "CanadaStatCd" is passed in or not. If you're considering other ways, you have some as follows:
    You can have "<xsl:when test="not($CanadaStatCd)">"- Which is same as parameter not being passed. So your code can be something like:
    <xsl:template name="CanadaInformation">
    <xsl:param name="CanadaClientCd" />
    <xsl:param name="CanadaStatCd" />
    <xsl:element name="CanadaStatus">
    <xsl:choose>
    <xsl:when test="not($CanadaStatCd)"> <!-- parameter has not been supplied -->
    <xsl:value-of select="$CanadaClientCd"/>
    </xsl:when>
    <xsl:otherwise>
    <xsl:value-of select="$CanadaStatCd"/>
    </xsl:otherwise>
    </xsl:choose>
    </xsl:element>
    </xsl:template>
    Have a default values to your parameter and check whether the values are differernt from default values if values are passed in otherwise if the value are still default value, then no value are passed in. Something like:
    <xsl:template name="CanadaInformation">
    <xsl:param name="CanadaClientCd" />
    <xsl:param name="CanadaStatCd" select="'SomeDefaultValue'" /> <!-- SET default -->
    <xsl:element name="CanadaStatus">
    <xsl:choose>
    <xsl:when test="$prefix != 'default-value'">
    <xsl:value-of select="$CanadaStatCd"/>
    </xsl:when>
    <xsl:otherwise>
    <xsl:value-of select="$CanadaClientCd"/>
    </xsl:otherwise>
    </xsl:choose>
    </xsl:element>
    </xsl:template>
    Have another scripting fuctiod before you call the above XSLT-template. Do the check at this scripting function and call the template based on the validation you do at this scripting functiod.
    If this answers your question please mark it accordingly. If this post is helpful, please vote as helpful by clicking the upward arrow mark next to my reply.

  • Problem call-template

    Hi forum helpers,
    in my template with word i want to have the header in the header section of word, because i want to have the header on every page, also after page break through word.
    But i have multiple headers in my xml because i want to print the word "copy 1", "copy 2" and so on on every page.
    So i created multiple headers for every new copy.
    I used several things:
    1) print the header information without using <?call-template option, but when the positions are more than to fit on one page, the header information
    is missing on the second page.
    2) using <?call-template option, but the header information is not changing. The <?template: tag is within the full loop of the form data.
    The header is printing on every page, also when word pushes a page break !
    Has anyone an idea to create a template in the header section of word with changing elements such as "copy 1", "copy 2" and so on ?
    The changing elements are out of the database, because i can change myself !
    Thank you for response.
    Regards
    Frank
    Edited by: handwerk.net on 04.08.2011 10:12
    Solved by another thread !

    Resolved by another thread !

  • Facing problem in query template editor

    Hi All,
    After creating connection to MySQLserver in my machine through DATA Servers after that i tried to access that server(through name of server ex:mysqlconnect) in
    query template editor by following the procedure then i am not getting the modes list
    procedure what we followed:
    Data Servers->query template editor->select new->select TagQuery->select mysqlconnect
    here in modes window i have to get modesbut i am not getting anything except message "No Data Available".
    In the same way there is one more in Tag Query section that is simulator where i am getting all modes.
    Please help me out how to get that modes for the connection we have created(mysqlconncet)

    Srikanth,
    Based upon the simple nature of this inquiry, and the responses so far, I am speculating that you are very new to the product and have not had any formal product training.  I would encourage you to pursue the SAP education courses to get a proper foundation on the xMII software.
    'No Data Available' always implies that a Fatal Error occured and in the case of the Template Editor you will see additional information in the Sun Java Console which should give you indication as to the underlying issue.  The console is the same place to look if you encounter this error message in any of the runtime applets.
    Any error like this also produces an error message along with all sorts of additional troubleshooting details in the general logs which are accessible from the main Menu.
    Regards,
    Jeremy Good

  • Can you help with filename template editor, RAW copy asDNG 6 dig sequence_yd?

    lightroom 3 for pc - I need help to set up filename template editor as follows  for RAW copy as DNG
    6 dig sequence_year--Month_day.dng (copies from metadata)
    sample as follows:
    128580_2013-April-24.dng
    128581_2013-April-24.dng
    so the next # would be
    128582
    I want it to automatically go to the next #.
    Thanks for your help.
    Andy

    Nevermind I finally figured it out! :-)

Maybe you are looking for