Adding dynamic parameters in fremarker android studio - templates

I am creating a template using freemarker. I want to add few parameters at runtime. How it can be done. The following is a sample template code:
<?xml version="1.0"?>
<template
minApi="7"
minBuildApi="8">
<category />
<dependency name="android-support-v4" revision="8" />
<parameter
id="packageName"
name="Package name"
type="string"
constraints="package"
default="com.mycompany.myapp" />
...
...
...
<!-- 128x128 thumbnails relative to template.xml -->
<thumbs>
<!-- default thumbnail is required -->
<thumb>thumb_file.png</thumb>
</thumbs>
<globals file="globals.xml.ftl" />
<execute file="recipe.xml.ftl" />
I want to generate a parameter while clicking a button in the template. Is it possible to do so? Is there any proper documentation available.

You can use the visibility attribute. For example, in the following:
<parameter
id="includeLayout"
name="Create layout XML?"
type="boolean"
default="true"
help="Generate a layout XML" />
<parameter
id="layoutName"
name="Layout Name"
type="string"
constraints="layout|nonempty|unique"
default="fragment_default"
visibility="includeLayout"
suggest="fragment_${camelCaseToUnderscore(className)}"
help="The name of the fragment layout to create" />
visibility="includeLayout" means that that field will only be visible when includeLayout is checked as true

Related

Import failure using the Vendor invoice V2 composite data entity (VendInvoiceV2Entity) in Dynamics 365 (D365) for Finance & Operations

I am trying to import vendor invoice using the composite data entity "Vendor invoice V2" data entity (VendInvoiceV2Entity), but I am getting the following error:
Package execution failed please check event log in DMF service box
'0' 'Vendor invoice V2' record(s) inserted in staging
I am using the following file for import:
<?xml version="1.0" encoding="utf-8"?>
<Document>
<VENDORINVOICEHEADERENTITY>
<HEADERREFERENCE>VT01-002123</HEADERREFERENCE>
<APPROVEPOSTINGWITHMATCHINGDISCREPANCIES>0</APPROVEPOSTINGWITHMATCHINGDISCREPANCIES>
<APPROVERPERSONNELNUMBER>000001</APPROVERPERSONNELNUMBER>
<BANKACCOUNT />
<BUSINESSDOCUMENTSUBMISSIONID_W>00000000-0000-0000-0000-000000000000</BUSINESSDOCUMENTSUBMISSIONID_W>
<CASHDISCOUNT>0.000000</CASHDISCOUNT>
<CASHDISCOUNTCODE />
<CASHDISCOUNTDATE>1900-01-01T00:00:00+00:00</CASHDISCOUNTDATE>
<CHARGESGROUP />
<COMMENT_ />
<CURRENCY>USD</CURRENCY>
<DATE>2022-06-02T00:00:00+00:00</DATE>
<DELIVERYNAME>New address created from PO</DELIVERYNAME>
<DIMENSIONDISPLAYVALUE />
<DISCOUNTPERCENTAGE>0.000000</DISCOUNTPERCENTAGE>
<DOCUMENTNUMBER />
<DUEDATE>2022-07-02T00:00:00+00:00</DUEDATE>
<ENDDATETIME>1900-01-01T00:00:00+00:00</ENDDATETIME>
<EXCHANGERATE>100.0000000000000000</EXCHANGERATE>
<FIXEDRATE>0</FIXEDRATE>
<HEADERONLYIMPORT>0</HEADERONLYIMPORT>
<IGNORECALCULATEDSALESTAX>0</IGNORECALCULATEDSALESTAX>
<IMPORTEDAMOUNT>0.000000</IMPORTEDAMOUNT>
<IMPORTEDSALESTAX>0.000000</IMPORTEDSALESTAX>
<INVOICEACCOUNT>000509</INVOICEACCOUNT>
<INVOICEDATE>1900-01-01T00:00:00+00:00</INVOICEDATE>
<INVOICEDESCRIPTION />
<INVOICEGROUP />
<INVOICENUMBER />
<INVOICEPAYMENTRELEASEDATE>1900-01-01T00:00:00+00:00</INVOICEPAYMENTRELEASEDATE>
<INVOICERECEIVEDDATE>2022-06-02T00:00:00+00:00</INVOICERECEIVEDDATE>
<INVOICEROUNDOFF>0.000000</INVOICEROUNDOFF>
<ISAPPROVED>1</ISAPPROVED>
<ISBATCH>1</ISBATCH>
<ISONHOLD>0</ISONHOLD>
<ISPRICESINCLUDESALESTAX>0</ISPRICESINCLUDESALESTAX>
<LOG />
<METHODOFPAYMENT />
<NUMBERSEQUENCEGROUP />
<OVERRIDESALESTAX>0</OVERRIDESALESTAX>
<PACKINGSLIPRANGE />
<PAYMENTGROUPCODE />
<PAYMENTID />
<PAYMENTSCHEDULE />
<PAYMENTSPECIFICATION />
<PORT />
<POSTINGPROFILE />
<PSNBANKACCOUNTID />
<PSNCARDHOLDERNAME />
<PSNCARDNUMBERDIGITS />
<PSNPOSTINGDEFINITIONCODE />
<PSNPURCHASINGCARDTRANSACTIONTYPE>0</PSNPURCHASINGCARDTRANSACTIONTYPE>
<PSNREFERENCEINVOICENUMBER />
<PSNVENDORACCOUNTFORBALANCEPAYOFF />
<PURCHIDRANGE />
<RECALCULATION>1</RECALCULATION>
<RELEASEDATECOMMENT />
<REPORTINGCURRENCYEXCHANGERATE>100.0000000000000000</REPORTINGCURRENCYEXCHANGERATE>
<SALESTAXGROUP />
<SALESTAXROUNDING>0.000000</SALESTAXROUNDING>
<SECONDARYEXCHANGERATE>0.0000000000000000</SECONDARYEXCHANGERATE>
<SETTLEVOUCHER>0</SETTLEVOUCHER>
<SITE />
<STARTDATETIME>1900-01-01T00:00:00+00:00</STARTDATETIME>
<STATISTICSPROCEDURE />
<TAXEXEMPTNUMBER />
<TERMSOFPAYMENT />
<TOTALDISCOUNT>0.000000</TOTALDISCOUNT>
<TRANSACTIONCODE />
<TRANSPORT />
<TRIANGULATION>0</TRIANGULATION>
<VARIANCEAPPROVEDDATETIME>1900-01-01T00:00:00+00:00</VARIANCEAPPROVEDDATETIME>
<VARIANCEPERSONNELNUMBER>000001</VARIANCEPERSONNELNUMBER>
<VENDORACCOUNT>000509</VENDORACCOUNT>
<VENDORINVOICEREVIEWSTATUS>0</VENDORINVOICEREVIEWSTATUS>
<VENDORINVOICETYPE>0</VENDORINVOICETYPE>
<VENDORNAME>MY XYZ VENDOR</VENDORNAME>
<VENDORREQUESTEDWORKEREMAIL>shakir.shabbir52#gmail.com</VENDORREQUESTEDWORKEREMAIL>
<WAREHOUSE />
<VENDORINVOICELINEENTITY>
<HEADERREFERENCE>VT01-002123</HEADERREFERENCE>
<INVOICELINENUMBER>1.0000000000000000</INVOICELINENUMBER>
<ACCOUNTINGDISTRIBUTIONTEMPLATEID />
<AMOUNT>0.000000</AMOUNT>
<BUDGETRESERVATIONDOCUMENTNUMBER />
<BUDGETRESERVATIONLINENUMBER>0</BUDGETRESERVATIONLINENUMBER>
<CHANGEQUANTITYMANUALLY>0</CHANGEQUANTITYMANUALLY>
<CHARGESONPURCHASES>0.000000</CHARGESONPURCHASES>
<CLOSEFORRECEIPT>0</CLOSEFORRECEIPT>
<COMMODITY />
<CURRENCY>USD</CURRENCY>
<CWDELIVERYREMAINDER>0.000000</CWDELIVERYREMAINDER>
<CWREMAININGQUANTITY>0.000000</CWREMAININGQUANTITY>
<CWUPDATE>0.000000</CWUPDATE>
<DATAAREACOMPANY />
<DELIVERYNAME>New address created from PO</DELIVERYNAME>
<DELIVERYSTATE />
<DIMENSIONDISPLAYVALUE />
<DIMENSIONNUMBER>#00000001500031DB</DIMENSIONNUMBER>
<DISCOUNT>0.000000</DISCOUNT>
<DISCOUNTPERCENT>0.000000</DISCOUNTPERCENT>
<INVENTNOW>3000.000000</INVENTNOW>
<INVENTORYSITEID>1001</INVENTORYSITEID>
<INVENTORYWAREHOUSEID>1001.255</INVENTORYWAREHOUSEID>
<INVOICEACCOUNT>000509</INVOICEACCOUNT>
<ISTAX1099GTRADEORBUSINESSINCOME>0</ISTAX1099GTRADEORBUSINESSINCOME>
<ISTAX1099SPROPERTYORSERVICES>0</ISTAX1099SPROPERTYORSERVICES>
<ITEMBATCHNUMBER />
<ITEMNAME>My Item name</ITEMNAME>
<ITEMNUMBER>100018</ITEMNUMBER>
<ITEMSALESTAX />
<LINEDESCRIPTION />
<LINENUMBER>1.0000000000000000</LINENUMBER>
<LINETYPE>0</LINETYPE>
<MAINACCOUNTDISPLAYVALUE />
<MULTILINEDISCOUNT>0.000000</MULTILINEDISCOUNT>
<MULTILINEDISCOUNTPERCENTAGE>0.000000</MULTILINEDISCOUNTPERCENTAGE>
<NETAMOUNT>65.610000</NETAMOUNT>
<ORDEREDINVENTORYSTATUSID />
<ORIGCOUNTRYREGIONID />
<ORIGINALDELIVERREMAINDER>3000.000000</ORIGINALDELIVERREMAINDER>
<OVERRIDESALESTAX>0</OVERRIDESALESTAX>
<PARTYID />
<PERCENTAGE>0.000000</PERCENTAGE>
<PORT />
<PRICEUNIT>1.000000000000</PRICEUNIT>
<PROCUREMENTCATEGORYHIERARCHYNAME>Main</PROCUREMENTCATEGORYHIERARCHYNAME>
<PROCUREMENTCATEGORYNAME>Lab Supplies</PROCUREMENTCATEGORYNAME>
<PRODUCTCOLORID />
<PRODUCTCONFIGURATIONID />
<PRODUCTSIZEID />
<PRODUCTSTYLEID />
<PURCHASEORDER>VT01-000741</PURCHASEORDER>
<PURCHLINENUMBER>1</PURCHLINENUMBER>
<RECEIVENOW>3.000000</RECEIVENOW>
<RELEASEALLRETAINEDAMOUNT>0</RELEASEALLRETAINEDAMOUNT>
<REMAINAFTER>0.000000</REMAINAFTER>
<REMAINAFTERINVENT>0.000000</REMAINAFTERINVENT>
<REMAINBEFOREINVENT>3000.000000</REMAINBEFOREINVENT>
<RETAINAGEAMOUNT>0.000000</RETAINAGEAMOUNT>
<RETAINPERCENTAGE>0.000000</RETAINPERCENTAGE>
<SALESTAXGROUP />
<STATEOFORIGIN />
<STATISTICSPROCEDURE />
<TAX1099AMOUNT>0.000000</TAX1099AMOUNT>
<TAX1099BOX />
<TAX1099GSTATETAXWITHHELDAMOUNT>0.000000</TAX1099GSTATETAXWITHHELDAMOUNT>
<TAX1099GTAXYEAR>0</TAX1099GTAXYEAR>
<TAX1099GVENDORSTATEID />
<TAX1099GVENDORSTATETAXID />
<TAX1099SADDRESSORLEGALDESCRIPTION />
<TAX1099SBUYERPARTOFREALESTATETAXAMOUNT>0.000000</TAX1099SBUYERPARTOFREALESTATETAXAMOUNT>
<TAX1099STATEAMOUNT>0.000000</TAX1099STATEAMOUNT>
<TAX1099TYPE>0</TAX1099TYPE>
<TAXWITHHOLDGROUP />
<TAXWITHHOLDITEMGROUPNAME />
<TRANSACTIONCODE />
<TRANSPORT />
<UNIT />
<UNITPRICE>21.870000</UNITPRICE>
<VENDORACCOUNT>000509</VENDORACCOUNT>
<VENDORINVOICELINEREVIEWSTATUS>0</VENDORINVOICELINEREVIEWSTATUS>
<WITHHOLDINGTAXGROUP />
</VENDORINVOICELINEENTITY>
</VENDORINVOICEHEADERENTITY>
</Document>
I checked the "Event log" as well, but did not get any useful information
TLDR;
The issue of the question is probably caused by a data issue and not by a bug in the import/export framework logic. Without having access to an environment with that data, there is probably little that can be provided in terms of an answer to the specific issue of the question. But here are some general pointers on how to further analyze the issue.
Creating a working baseline
In general, when setting up an import for a complex entity like Vendor Invoice V2, I recommend the following process:
First, manually create a few data samples in the system (in this case, a pending vendor invoice). The samples should be entered with the same data that you expect from the import.
Second, create an export project and export the data samples. This will give you a template file that you can use for the import.
Third, create the import project with the template file.
Check that the import works with the template file. You should delete the sample data first to make sure the import creates new records instead of updating them.
Modify a copy of the template file to include additional import data. Import that modified copy.
Steps 1-4 are important to establish a working base line. The bulk of the work will probably be step 5. Usually, at this step, numerous issues with the import data are uncovered.
Working Contoso sample and additional ideas
Following this process, I was able to set up a working import on a 10.0.28 environment with Contoso demo data in the USMF legal entity. See below for the xml data that I used.
While testing this and when comparing my xml data with the one from the question, I noticed the following issues that may be worth investigating:
During setup of the import project, the mapping was first shown with a red x symbol. This was due to the unmapped field COMMENT_, which only seems to be supported for export, but not import. I removed it from the mapping and the red x was gone.
The xml data in the question has a field PURCHASEORDER in the line data, but the field is missing in the header data.
A couple of fields in my xml data have values, while the xml data of the question does not, and vice versa. Nothing obvious was jumping out at me for causing issues. But I recommend reviewing the import data carefully for any issues.
Working sample data:
<?xml version="1.0" encoding="utf-8"?>
<Document>
<VENDORINVOICEHEADERENTITY>
<HEADERREFERENCE>012222</HEADERREFERENCE>
<APPROVEPOSTINGWITHMATCHINGDISCREPANCIES>0</APPROVEPOSTINGWITHMATCHINGDISCREPANCIES>
<APPROVERPERSONNELNUMBER>000020</APPROVERPERSONNELNUMBER>
<BANKACCOUNT />
<BUSINESSDOCUMENTSUBMISSIONID_W>00000000-0000-0000-0000-000000000000</BUSINESSDOCUMENTSUBMISSIONID_W>
<CASHDISCOUNT>0.000000</CASHDISCOUNT>
<CASHDISCOUNTCODE>0.5%D10</CASHDISCOUNTCODE>
<CASHDISCOUNTDATE>1900-01-01T00:00:00+01:00</CASHDISCOUNTDATE>
<CHARGESGROUP />
<COMMENT_ />
<CURRENCY>USD</CURRENCY>
<DATE>2022-06-15T00:00:00+02:00</DATE>
<DELIVERYNAME>Contoso Entertainment System USA</DELIVERYNAME>
<DIMENSIONDISPLAYVALUE>001--</DIMENSIONDISPLAYVALUE>
<DISCOUNTPERCENTAGE>0.500000</DISCOUNTPERCENTAGE>
<DOCUMENTNUMBER />
<DUEDATE>2022-07-15T00:00:00+02:00</DUEDATE>
<ENDDATETIME>1900-01-01T00:00:00+01:00</ENDDATETIME>
<EXCHANGERATE>100.0000000000000000</EXCHANGERATE>
<FIXEDRATE>0</FIXEDRATE>
<HEADERONLYIMPORT>0</HEADERONLYIMPORT>
<IGNORECALCULATEDSALESTAX>0</IGNORECALCULATEDSALESTAX>
<IMPORTEDAMOUNT>0.000000</IMPORTEDAMOUNT>
<IMPORTEDSALESTAX>0.000000</IMPORTEDSALESTAX>
<INVOICEACCOUNT>1001</INVOICEACCOUNT>
<INVOICEDATE>1900-01-01T00:00:00+01:00</INVOICEDATE>
<INVOICEDESCRIPTION />
<INVOICEGROUP />
<INVOICENUMBER>4711</INVOICENUMBER>
<INVOICEPAYMENTRELEASEDATE>1900-01-01T00:00:00+01:00</INVOICEPAYMENTRELEASEDATE>
<INVOICERECEIVEDDATE>1900-01-01T00:00:00+01:00</INVOICERECEIVEDDATE>
<INVOICEROUNDOFF>0.000000</INVOICEROUNDOFF>
<ISAPPROVED>1</ISAPPROVED>
<ISBATCH>0</ISBATCH>
<ISONHOLD>0</ISONHOLD>
<ISPRICESINCLUDESALESTAX>0</ISPRICESINCLUDESALESTAX>
<LOG />
<METHODOFPAYMENT>CHECK</METHODOFPAYMENT>
<NUMBERSEQUENCEGROUP />
<OVERRIDESALESTAX>0</OVERRIDESALESTAX>
<PACKINGSLIPRANGE />
<PAYMENTGROUPCODE />
<PAYMENTID />
<PAYMENTSCHEDULE />
<PAYMENTSPECIFICATION />
<PORT />
<POSTINGPROFILE>GEN</POSTINGPROFILE>
<PSNBANKACCOUNTID />
<PSNCARDHOLDERNAME />
<PSNCARDNUMBERDIGITS />
<PSNPOSTINGDEFINITIONCODE />
<PSNPURCHASINGCARDTRANSACTIONTYPE>0</PSNPURCHASINGCARDTRANSACTIONTYPE>
<PSNREFERENCEINVOICENUMBER />
<PSNVENDORACCOUNTFORBALANCEPAYOFF />
<PURCHASEORDERNUMBER />
<PURCHIDRANGE />
<RECALCULATION>1</RECALCULATION>
<RELEASEDATECOMMENT />
<REPORTINGCURRENCYEXCHANGERATE>100.0000000000000000</REPORTINGCURRENCYEXCHANGERATE>
<SALESTAXGROUP />
<SALESTAXROUNDING>0.000000</SALESTAXROUNDING>
<SECONDARYEXCHANGERATE>0.0000000000000000</SECONDARYEXCHANGERATE>
<SETTLEVOUCHER>0</SETTLEVOUCHER>
<SITE />
<STARTDATETIME>1900-01-01T00:00:00+01:00</STARTDATETIME>
<STATISTICSPROCEDURE />
<TAXEXEMPTNUMBER />
<TERMSOFPAYMENT>Net30</TERMSOFPAYMENT>
<TOTALDISCOUNT>0.000000</TOTALDISCOUNT>
<TRANSACTIONCODE />
<TRANSPORT />
<TRIANGULATION>0</TRIANGULATION>
<VARIANCEAPPROVEDDATETIME>1900-01-01T00:00:00+01:00</VARIANCEAPPROVEDDATETIME>
<VARIANCEPERSONNELNUMBER>000020</VARIANCEPERSONNELNUMBER>
<VENDORACCOUNT>1001</VENDORACCOUNT>
<VENDORINVOICEREVIEWSTATUS>0</VENDORINVOICEREVIEWSTATUS>
<VENDORINVOICETYPE>0</VENDORINVOICETYPE>
<VENDORNAME>Acme Office Supplies</VENDORNAME>
<VENDORREQUESTEDWORKEREMAIL>julia#contoso.com</VENDORREQUESTEDWORKEREMAIL>
<WAREHOUSE />
<VENDORINVOICELINEENTITY>
<HEADERREFERENCE>012222</HEADERREFERENCE>
<INVOICELINENUMBER>1.0000000000000000</INVOICELINENUMBER>
<ACCOUNTINGDISTRIBUTIONTEMPLATEID />
<ADJUSTEDUNITPRICE>0.000000</ADJUSTEDUNITPRICE>
<AMOUNT>0.000000</AMOUNT>
<BUDGETRESERVATIONDOCUMENTNUMBER />
<BUDGETRESERVATIONLINENUMBER>0</BUDGETRESERVATIONLINENUMBER>
<CHANGEQUANTITYMANUALLY>0</CHANGEQUANTITYMANUALLY>
<CHARGESONPURCHASES>0.000000</CHARGESONPURCHASES>
<CLOSEFORRECEIPT>0</CLOSEFORRECEIPT>
<COMMODITY />
<CURRENCY>USD</CURRENCY>
<CWDELIVERYREMAINDER>0.000000</CWDELIVERYREMAINDER>
<CWREMAININGQUANTITY>0.000000</CWREMAININGQUANTITY>
<CWUPDATE>0.000000</CWUPDATE>
<DATAAREACOMPANY />
<DELIVERYNAME>Site 1</DELIVERYNAME>
<DELIVERYSTATE />
<DIMENSIONDISPLAYVALUE>001--</DIMENSIONDISPLAYVALUE>
<DIMENSIONNUMBER>000252</DIMENSIONNUMBER>
<DISCOUNT>0.000000</DISCOUNT>
<DISCOUNTPERCENT>0.000000</DISCOUNTPERCENT>
<INVENTNOW>0.000000</INVENTNOW>
<INVENTORYSITEID>1</INVENTORYSITEID>
<INVENTORYWAREHOUSEID>13</INVENTORYWAREHOUSEID>
<INVOICEACCOUNT>1001</INVOICEACCOUNT>
<ISTAX1099GTRADEORBUSINESSINCOME>0</ISTAX1099GTRADEORBUSINESSINCOME>
<ISTAX1099SPROPERTYORSERVICES>0</ISTAX1099SPROPERTYORSERVICES>
<ITEMBATCHNUMBER />
<ITEMNAME>Microsoft Natural Keyboard Elite / Microsoft Natural Keyboard Elite</ITEMNAME>
<ITEMNUMBER>C0001</ITEMNUMBER>
<ITEMSALESTAX>ALL</ITEMSALESTAX>
<LINEDESCRIPTION>Microsoft Natural Keyboard Elite</LINEDESCRIPTION>
<LINENUMBER>0.0000000000000000</LINENUMBER>
<LINETYPE>0</LINETYPE>
<MAINACCOUNTDISPLAYVALUE />
<MULTILINEDISCOUNT>0.000000</MULTILINEDISCOUNT>
<MULTILINEDISCOUNTPERCENTAGE>0.000000</MULTILINEDISCOUNTPERCENTAGE>
<NETAMOUNT>39.950000</NETAMOUNT>
<ORDEREDINVENTORYSTATUSID />
<ORIGCOUNTRYREGIONID />
<ORIGINALDELIVERREMAINDER>0.000000</ORIGINALDELIVERREMAINDER>
<OVERRIDESALESTAX>0</OVERRIDESALESTAX>
<PARTYID />
<PDSCALCULATIONID />
<PERCENTAGE>0.000000</PERCENTAGE>
<PORT />
<PRICEUNIT>1.000000000000</PRICEUNIT>
<PROCUREMENTCATEGORYHIERARCHYNAME>Procurement - Office Supplies</PROCUREMENTCATEGORYHIERARCHYNAME>
<PROCUREMENTCATEGORYNAME>Computers</PROCUREMENTCATEGORYNAME>
<PRODUCTCOLORID>Black</PRODUCTCOLORID>
<PRODUCTCONFIGURATIONID />
<PRODUCTSIZEID />
<PRODUCTSTYLEID />
<PURCHASEORDER />
<PURCHLINENUMBER>0</PURCHLINENUMBER>
<RECEIVENOW>1.000000</RECEIVENOW>
<RELEASEALLRETAINEDAMOUNT>0</RELEASEALLRETAINEDAMOUNT>
<REMAINAFTER>0.000000</REMAINAFTER>
<REMAINAFTERINVENT>0.000000</REMAINAFTERINVENT>
<REMAINBEFORE>0.000000</REMAINBEFORE>
<REMAINBEFOREINVENT>0.000000</REMAINBEFOREINVENT>
<RETAINAGEAMOUNT>0.000000</RETAINAGEAMOUNT>
<RETAINPERCENTAGE>0.000000</RETAINPERCENTAGE>
<SALESTAXGROUP />
<STATEOFORIGIN />
<STATISTICSPROCEDURE />
<TAX1099AMOUNT>0.000000</TAX1099AMOUNT>
<TAX1099BOX />
<TAX1099GSTATETAXWITHHELDAMOUNT>0.000000</TAX1099GSTATETAXWITHHELDAMOUNT>
<TAX1099GTAXYEAR>0</TAX1099GTAXYEAR>
<TAX1099GVENDORSTATEID />
<TAX1099GVENDORSTATETAXID />
<TAX1099SADDRESSORLEGALDESCRIPTION />
<TAX1099SBUYERPARTOFREALESTATETAXAMOUNT>0.000000</TAX1099SBUYERPARTOFREALESTATETAXAMOUNT>
<TAX1099STATEAMOUNT>0.000000</TAX1099STATEAMOUNT>
<TAX1099TYPE>0</TAX1099TYPE>
<TAXWITHHOLDGROUP />
<TAXWITHHOLDITEMGROUPNAME />
<TOTALRETAINEDAMOUNT>0.000000</TOTALRETAINEDAMOUNT>
<TRANSACTIONCODE />
<TRANSPORT />
<UNIT>ea</UNIT>
<UNITPRICE>39.950000</UNITPRICE>
<VENDORACCOUNT>1001</VENDORACCOUNT>
<VENDORINVOICELINEREVIEWSTATUS>0</VENDORINVOICELINEREVIEWSTATUS>
<WITHHOLDINGTAXGROUP />
</VENDORINVOICELINEENTITY>
</VENDORINVOICEHEADERENTITY>
</Document>

How to add my own file association into the "Open with" context menu?

Say, if I right-click a file and then go to "Open with" menu, it will show a submenu, similar to this one:
How can I add my own program to that "Open with" list?
PS. Note that in this case I do not need to create an association with a particular file extension (that a user normally double-clicks to open.)
PS2. I technically need this done from an MSI installer (I'm using WiX) but if someone can suggest APIs or registry to set up I can do this from a custom action as well, if MSI/WiX doesn't directly support it.
I think I found the answer from this and this articles.
Say, if I was making a "Text Zapper" app and wanted to associate it to "Open With" .txt files. Here's a pseudo-markup for the WiX (MSI) layout. It basically defines the registry keys that need to be set. (Note that it doesn't define the .txt extension default association for the app.)
<?define ProgId = "Text.Zapper.1" ?>
<?define GuiAppExeName = "txtzpr.exe" ?>
<?define ProductThis = "Text Zapper" ?>
<?define AppDescr = "Wonderful Text Zapper Application" ?>
<Component Id='IdTextZapper' Guid='*'>
<File Id='IdTextZapperExe' Name='$(var.GuiAppExeName)' DiskId='1' Source='$(var.Srctxtzpr)' KeyPath='yes' />
<!-- Extend the "open with" Windows Explorer function -->
<RegistryValue Root="HKLM" Key="SOFTWARE\Classes\$(var.ProgId)" Value="$(var.ProductThis)" Type="string" />
<RegistryValue Root="HKLM" Key="SOFTWARE\Classes\Applications\$(var.GuiAppExeName)" Name="FriendlyAppName" Value="$(var.ProductThis)" Type="string" />
<RegistryValue Root="HKLM" Key="SOFTWARE\Classes\Applications\$(var.GuiAppExeName)\shell\open" Name="FriendlyAppName" Value="$(var.ProductThis)" Type="string" />
<RegistryValue Root="HKLM" Key="SOFTWARE\Classes\Applications\$(var.GuiAppExeName)\shell\open\command" Value='"[INSTALLDIR]$(var.GuiAppExeName)" "%1"' Type="string" />
<RegistryValue Root="HKLM" Key="SOFTWARE\My Company\Text Zapper\Capabilities" Name="ApplicationDescription" Value="$(var.AppDescr)" Type="string" />
<RegistryValue Root="HKLM" Key="SOFTWARE\RegisteredApplications" Name="$(var.ProductThis)" Value="SOFTWARE\My Company\Text Zapper\Capabilities" Type="string" />
<RegistryValue Root="HKLM" Key="SOFTWARE\Classes\.txt\OpenWithProgIDs" Name="$(var.ProgId)" Value="" Type="string" />
<RegistryValue Root="HKLM" Key="SOFTWARE\Classes\.txt\OpenWithList\$(var.GuiAppExeName)" Value="" Type="string" />
<RegistryValue Root="HKLM" Key="SOFTWARE\Classes\Applications\$(var.GuiAppExeName)\SupportedTypes" Name=".txt" Value="" Type="string" />
<RegistryValue Root="HKLM" Key="SOFTWARE\My Company\Text Zapper\Capabilities\FileAssociations" Name=".txt" Value="$(var.ProgId)" Type="string" />
</Component>

Struts 2.3 ignores wildcard actions

I'm setting up an application that uses Struts 2.3 and Tiles 2. Some pages will be heavily Struts driven (e.g. lots of CRUD) while others will be simple, static HTML/JSP pages. I want to set up some actions that handle specific functionality and send all other URLs to a default action, which will check to see if the appropriate static page exists based on the supplied path. If not, a 404 error or some such will be generated instead.
In struts.xml, I have applied a basic configuration that appears like it should work; however, Struts seems to ignore the wildcard action. The non-wildcard actions work just fine.
Here's the struts.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<!--
You could also set the constants in the struts.properties file
placed in the same directory as struts.xml
-->
<constant name="struts.devMode" value="true" />
<!-- <constant name="struts.mapper.class" value="rest" /> -->
<constant name="struts.action.extension" value="," />
<constant name="struts.enable.SlashesInActionNames" value="true"/>
<constant name="struts.mapper.alwaysSelectFullNamespace" value="false"/>
<constant name="struts.patternMatcher" value="regex" />
<!--
<constant name="struts.convention.action.suffix" value="Controller"/>
<constant name="struts.convention.action.mapAllMatches" value="true"/>
<constant name="struts.convention.default.parent.package" value="rest-default"/>
<constant name="struts.convention.package.locators" value="rest"/>
-->
<package name="base" extends="tiles-default" abstract="yes">
<result-types>
<result-type name="tiles" default="true" class="org.apache.struts2.views.tiles.TilesResult" />
<result-type name="json" class="org.apache.struts2.json.JSONResult"/>
</result-types>
<interceptors>
<interceptor name="json" class="org.apache.struts2.json.JSONInterceptor"/>
<!-- <interceptor name="requestConstants" class="com.ibm.gbs.vdp.constants.ConstantsInterceptor" /> -->
<interceptor-stack name="mainStack">
<interceptor-ref name="defaultStack"/>
<interceptor-ref name="json" />
<!-- <interceptor-ref name="session" /> -->
<!-- <interceptor-ref name="requestConstants" /> -->
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="mainStack" />
<global-results>
<result name="login" type="tiles">login</result>
</global-results>
</package>
<!-- package start -->
<package name="main" extends="base" namespace="/">
<action name="login">
<result type="tiles">login</result>
</action>
<action name="logout" class="com.gswt.common.action.LogoutAction">
<result name="success">login</result>
</action>
<action name="*" class="com.installation.action.PageAction">
<result type="tiles">standard-page</result>
</action>
</package>
<!-- package end -->
<!-- package start -->
<package name="licenses" extends="base" namespace="/licenses">
</package>
<!-- package end -->
<!-- package start -->
<package name="checklists" extends="base" namespace="/checklists">
</package>
<!-- package end -->
<!-- package start -->
<package name="error" extends="base" namespace="/error">
<action name="404">
<result type="tiles">error-404</result>
</action>
</package>
<!-- package end -->
</struts>
And here's an example of the error I receive:
There is no Action mapped for namespace [/] and action name [page] associated with context path []. - [unknown location]
com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:185)
org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:63)
org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:39)
com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:58)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:553)
org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:99)
com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:190)
com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:125)
com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:80)
com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:908)
com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:997)
com.ibm.ws.webcontainer.extension.DefaultExtensionProcessor.invokeFilters(DefaultExtensionProcessor.java:1079)
com.ibm.ws.webcontainer.extension.DefaultExtensionProcessor.handleRequest(DefaultExtensionProcessor.java:999)
com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3954)
com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:276)
com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:945)
com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1592)
com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:191)
com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:453)
com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:515)
com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:306)
com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:277)
com.ibm.ws.ssl.channel.impl.SSLConnectionLink.determineNextChannel(SSLConnectionLink.java:1049)
com.ibm.ws.ssl.channel.impl.SSLConnectionLink$MyReadCompletedCallback.complete(SSLConnectionLink.java:643)
com.ibm.ws.ssl.channel.impl.SSLReadServiceContext$SSLReadCompletedCallback.complete(SSLReadServiceContext.java:1784)
com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:175)
com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)
com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)
com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)
com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1656)
What am I missing or doing wrong?
Since you are using advanced wildcards then your action name should be a valid regex expression to match the configuration.
Like so
<action name="{.*}" class="com.installation.action.PageAction">
<result type="tiles">standard-page</result>
</action>

WS02 G-REG new metadata type

We're testing G-Reg for use of a SOA repository. The default types are Services, WSDL's, Schemas and WS Policies, we're triying to add a new type (Persons for example).
Once added, we want to create a xml to specify the fields that needs to be filled to upload a new resource of the "Persons" type, (like the Services type actual funcionality).
We've followed the guide on http://docs.wso2.org/wiki/display/Governance411/Configurable+Governance+Artifacts, but with no success of creating the example named "Events", because there exists contradictory information, the path "/_system/governance/repository/components/org.wso2.carbon.governance/types", doesn't exists on GREG 4.1.1, so where is supposed the content to be uploaded?
And, the guide explains about a "registry extension file" and a "content", which is the difference between them?, they need a name?, content.xml and extfile.xml perhaps?
Any orientation will be greatly appreciated
Thanks,
Gabriel.
Here is a sample server.rxt file I have created.
<artifactType type="application/vnd.wso2-server+xml" shortName="server" singularLabel="Server" pluralLabel="Servers" hasNamespace="false" iconSet="5">
<storagePath>/servers/#{overview_name}/</storagePath>
<ui>
<list>
<column name="Name">
<data type="path" value="overview_name" href="#{storagePath}"/>
</column>
</list>
</ui>
<content>
<table name="Overview">
<field type="text" required="true">
<name label="name">Name</name>
</field>
<field type="text" required="true">
<name label="url">url</name>
</field>
<field type="text" required="true">
<name label="username">username</name>
</field>
<field type="text" required="true">
<name label="password">password</name>
</field>
</table>
</content>
</artifactType>
you need to save this under the directory you have mentioned.
/_system/governance/repository/components/org.wso2.carbon.governance/types
this location is not exits. But you need to create this directory and save.
After restart you should see the new type under meta data list

Magento 1.5.01 - I am unable to load a template after overriding the customer module

This is my first post here, so please forgive me in advance :)
I've been working on overriding the Customer module for some specific
functionality depending on the user group; I want to duplicate and
append to the user registration form that targets the specific user
group.
I have successfully overridden and extended my way through the
controller, model, and block classes that I would like to use, however
when I override the block class, the layout i'm pointing to is no
longer rendered.
Here's the relevant chunk of the layout code:
<customer_account_vcreate translate="label">
<label>Customer Account Registration Form</label>
<!-- Mage_Customer -->
<remove name="right"/>
<remove name="left"/>
<reference name="root">
<action method="setTemplate"><template>page/1column.phtml</template></action>
</reference>
<reference name="content">
<block type="customer/form_register" name="customer_form_register" template="customer/form/register.phtml">
<block type="page/html_wrapper" name="customer.form.register.fields.before" as="form_fields_before" translate="label">
<label>Form Fields Before</label>
</block>
</block>
</reference>
</customer_account_vcreate>
I know that it just points to the regular block/template right now, but even that isn't loading. The block loads just fine (I can output from the constructor), it just seems that the layout file is not being loaded anymore.
I've also tried to override the login form with similar problems, can anyone help?
Geoff
EDIT -
Here's a more complete question for the login block:
Here's my config:
<?xml version="1.0"?>
<config>
<modules>
<Izoox_Customer>
<version>1.0.1</version>
</Izoox_Customer>
</modules>
<frontend>
<routers>
<customer>
<args>
<modules>
<Izoox_Customer before="Mage_Customer">Izoox_Customer_Customer</Izoox_Customer>
</modules>
</args>
</customer>
</routers>
<layout>
<updates>
<customer>
<file>izooxcustomer.xml</file>
</customer>
</updates>
</layout>
</frontend>
<global>
<blocks>
<customer>
<rewrite><form_login>Izoox_Customer_Block_Form_Login</form_login>
</rewrite>
</customer>
</blocks>
</global>
</config>
It works when I remove the block code from the above config, except then I'm not getting any of my custom code from the block.
Above I have overridden the Customer module to use my own code here, and have overridden the customer_login block with my own block. I can see that the custom block loads by echoing out of the _prepareLayout() function, but the view file (login.phtml) doesn't seem to load. Here's the layout (izooxcustomer.xml), which also loads fine.
<customer_account_login translate="label">
<label>Customer Account Login Form</label>
<!-- Mage_Customer -->
<reference name="root">
<action method="setTemplate"><template>page/1column.phtml</template></action>
</reference>
<reference name="content">
<block type="customer/form_login" name="customer_form_login" template="customer/form/login.phtml"/>
</reference>
</customer_account_login>
Am I missing something, or is this just not possible?
Thanks,
Geoff
Looks like you have your main layout tag misspelled. It should be <customer_account_create>. You have a 'v' in there before create.