Transform an XMLType using xslt
Hi,
I have a table where I'm saving xslt programs using XMLType and I want to use the xslt document(); function to refere to xml data stored in an other table using XMLType
Exemple :
CREATE TABLE STYLSHEETTABLE
ID INTEGER,
XSLT SYS.XMLTYPE
CREATE TABLE XMLTABLE
ID INTEGER,
XML SYS.XMLTYPE
);
Hi,
I have a table where I'm saving xslt programs using XMLType and I want to use the xslt document(); function to refere to xml data stored in an other table using XMLType
Exemple :
CREATE TABLE STYLSHEETTABLE
ID INTEGER,
XSLT SYS.XMLTYPE
CREATE TABLE XMLTABLE
ID INTEGER,
XML SYS.XMLTYPE
);
Similar Messages
-
XSLT - Exception error when using XSLT 2.0 code in Transform on LiveCycle ES2
I'm new to using this forum, so apologies in advance in I have posted this to the wrong place.
I'm using Adobe LiveCycle ES2.5 (Jboss) and have written several complex XSLT scripts. All have worked, with the exception of the latest one in which I have to sum a repeating subnode that maynot exist and if it does, may contain a number or be empty. When I have used SUM by itself, it works perfectly if I all the nodes have values, but returns zero if any are missing or are empty. After some searching I found a solution (which I have made bold) in the fragment below.
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" ...>
<xsl:variable name="varUnitValueTotal" select="sum( (if(SOURCEUNITVALUE='') then 0 else SOURCEUNITVALUE) )"/>
</xsl:stylesheet>
I developed and tested this xslt in XMLSpy 2011 and it works a treat. However, when I invoke the XSLT using the Services\XSLT Transformation 1.0\Transform, I get the following exception error:
javax.xml.transform.TransformerConfigurationException: javax.xml.transform.TransformerException: javax.xml.transform.TransformerException: Could not find function: if
at org.apache.xalan.processor.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.jav a:936)
at org.apache.xalan.processor.TransformerFactoryImpl.newTransformer(TransformerFactoryImpl.j ava:774)
at com.adobe.livecycle.xslt.XsltTransformer.transform(XsltTransformer.java:151)
Now as far as the documentation is concerned ES2 and better should be using XSLT 2.0. However to test a theory I changed the stylesheet version from 2.0 to 1.0 and re-ran the xslt in XMLSpy and it fell over at exactly the same place as the exception error. Which makes me conclude that LC ES2+ is still using XSLT 1.0.
Now I am stuck. The only work around that I can see is to attempt to do the calculation in the form (which sort of defeats the point of usng XSLT). That said I am reluctant to go down that path, since the maintenance overhead is going to be shocking if I have to apply to dozens of forms.
Is there a way to tell the Transform service to use XSLT 2.0 and if so, how and what are the settings? Or do I need to find and use a different transform engine, again if so which one should I use and what settings should I make at either JBoss and/or AdminUI level.
Really hoping that someone can help.The XSLT service is configurable.
http://help.adobe.com/en_US/LiveCycle/9.5/WorkbenchHelp/WS92d06802c76abadb-1cc35bda128261a 20dd-6750.html
1) Stop LiveCycle.
2) Add the .jars of your XSLT processor of choice to the LiveCycle server lib folder.
3) Restart LiveCycle.
4) Go to Workbench and stop the XSLT service. Right-click on XSLTService:1.0 and Edit Service Configuration.
5) Enter the factory name for the given XSLT processor. I think for Xalan 2.7.1 it is org.apache.xalan.processor.TransformerFactoryImpl (but I could be wrong).
6) Restart the service.
Steve -
Transforming XML Data with XSLT in a servlet
Trying to transform XML data using XSLT. The following code works fine outside of a servlet. But in a servlet it gives the following error :
* Transformer Factory error
javax.xml.transform.TransformerConfigurationException: javax.xml.transform.TransformerException: org.xml.sax.SAXException: Namespace not supported by SAXParser
javax.xml.transform.TransformerConfigurationException: javax.xml.transform.TransformerException: org.xml.sax.SAXException: Namespace not supported by SAXParser
at org.apache.xml.utils.DefaultErrorHandler.fatalError(DefaultErrorHandler.java:257)
at org.apache.xalan.processor.TransformerFactoryImpl.newTransformer(TransformerFactoryImpl.java:813)
at TransformationApp.XSLTTransformServlet.MyTransform(XSLTTransformServlet.java:79)
at TransformationApp.XSLTTransformServlet.doGet(XSLTTransformServlet.java:39)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:405)
at org.apache.tomcat.core.Handler.service(Handler.java:287)
at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)
at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:812)
at org.apache.tomcat.core.ContextManager.service(ContextManager.java:758)
at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:213)
at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)
at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:501)
at java.lang.Thread.run(Thread.java:484)
Several articles hinted at setting the factory namespace attribute to TRUE. I have tried that but same results. Here is the code :
static Document document;
DocumentBuilderFactory factory =
DocumentBuilderFactory.newInstance();
//factory.setNamespaceAware(true);
//factory.setValidating(true);
try {
File stylesheet = new File(argv[0]);
File datafile = new File(argv[1]);
DocumentBuilder builder = factory.newDocumentBuilder();
document = builder.parse(datafile);
// Use a Transformer for output
TransformerFactory tFactory =
TransformerFactory.newInstance();
StreamSource stylesource = new StreamSource(stylesheet);
Transformer transformer = tFactory.newTransformer(stylesource);
DOMSource source = new DOMSource(document);
StreamResult result = new StreamResult(System.out);
transformer.transform(source, result);
} catch (TransformerConfigurationException tce) {
// Error generated by the parser
System.out.println ("\n** Transformer Factory error");
System.out.println(" " + tce.getMessage() );
// Use the contained exception, if any
Throwable x = tce;
if (tce.getException() != null)
x = tce.getException();
x.printStackTrace();
} catch (TransformerException te) {
// Error generated by the parser
System.out.println ("\n** Transformation error");
System.out.println(" " + te.getMessage() );
// Use the contained exception, if any
Throwable x = te;
if (te.getException() != null)
x = te.getException();
x.printStackTrace();
} catch (SAXException sxe) {
// Error generated by this application
// (or a parser-initialization error)
Exception x = sxe;
if (sxe.getException() != null)
x = sxe.getException();
x.printStackTrace();
} catch (ParserConfigurationException pce) {
// Parser with specified options can't be built
pce.printStackTrace();
} catch (IOException ioe) {
// I/O error
ioe.printStackTrace();
Any help would be greatly appreciated.I don't know that this is true, but i think the problem is the classpath.
The runtime has his own parser. This parser is befor your xalan.lib in the classpath and the
parser from the runntime don't support namespace.
Try Tomcat 4.
Regard Dietmar -
XSLT mapping - Which transformation engine is used in PI 7.0
Hi,
In my favorite xslt tool I can choose which transformation engine I want to use while executing the xsl.
Which Transformation engine is used in PI 7.0 ?
(Nice to test with the same as PI have....)
Br, MartinHi ,
as per my knowledge PI 7.0 uses XALAN parcer to execute XSLT Mapping programs,its available in in PI server it slelf.
Regards,
Raj -
XML to Internal table using XSLT by CALL TRANSFORMATION error
Dear experts,
I have to fetch the data from an XML file using XSLT into internal tables. The XML file is very big as following:-
<?xml version="1.0" standalone="yes" ?>
- <Shipment>
<shipmentID>25091203S000778</shipmentID>
<manifestDateTime>2009-12-03T20:16:52.00</manifestDateTime>
<shipmentFacilityNumber>025</shipmentFacilityNumber>
<shipmentFacilityAbbreviation>CHI</shipmentFacilityAbbreviation>
<shipmentFacilityAddress1>810 KIMBERLY DRIVE</shipmentFacilityAddress1>
<shipmentFacilityAddress2 />
<shipmentFacilityCity>CAROL STREAM</shipmentFacilityCity>
<shipmentFacilityState>IL</shipmentFacilityState>
<shipmentFacilityPostalCode>601880000</shipmentFacilityPostalCode>
<shipmentTruckCarrierCode>X150</shipmentTruckCarrierCode>
<shipmentSourceCode>T</shipmentSourceCode>
<userID>CAMPOSG</userID>
- <Delivery>
<primaryCustomerNumber>954371</primaryCustomerNumber>
<primaryCustomerName>MIDWEST OFFICE SUPPLY</primaryCustomerName>
<primaryCustomerAddress1 />
<primaryCustomerAddress2>4765 INDUSTRIAL DR</primaryCustomerAddress2>
<primaryCustomerCity>SPRINGFIELD</primaryCustomerCity>
<primaryCustomerState>IL</primaryCustomerState>
<primaryCustomerPostalCode>627030000</primaryCustomerPostalCode>
<primaryCustomerPhoneNumber>2177535555</primaryCustomerPhoneNumber>
<shuttleStopFacilityNumber />
<billOfLadingNumber>25HZK99</billOfLadingNumber>
<carrierProNumber />
<shipmentTotalCartonCount>6</shipmentTotalCartonCount>
<shipmentTotalWeight>266</shipmentTotalWeight>
- <order>
<orderNumber>25HZK99</orderNumber>
<subOrderNumber />
<dateProcessed>2009-12-03</dateProcessed>
<primaryOrderNumber />
<shipTruckCode>X150</shipTruckCode>
<shipTruckDescription>UDS - ADDISON</shipTruckDescription>
<shipTruckPriorityCode>01</shipTruckPriorityCode>
<shipTruckGroupCode>01</shipTruckGroupCode>
<shipTruckDepartureTime>20.00.00</shipTruckDepartureTime>
<shipTruckDockID>07</shipTruckDockID>
<ldpFacilityAbbreviation />
<shuttleAvailableIndicator>N</shuttleAvailableIndicator>
<shuttleMessageText />
<crossDockFacilityCode />
<crossDockTruckCode />
<crossDockID />
<subsidizedFreightTruckID />
<customerPurchaseOrderNumber>623559</customerPurchaseOrderNumber>
<headerTypeCode>P</headerTypeCode>
<orderTypeID>RG</orderTypeID>
<deliveryTypeID>DS</deliveryTypeID>
<deliveryMethodCode />
<customerBarCode />
<customerReferenceData>25HZK99</customerReferenceData>
<customerReferenceText />
<customerRouteData>ZNED UNTED</customerRouteData>
<customerRouteText>ROUTE</customerRouteText>
<endConsumerPurchaseOrderNumber />
<endConsumerPurchaseOrderText />
<endConsumerName>CHARLESTON TRANS. FACILITY</endConsumerName>
<endConsumerAddress1>HOMEWOOD DT PROGRAM DEPT. 3</endConsumerAddress1>
<endConsumerAddress2>17341 PALMER BLVD.</endConsumerAddress2>
<endConsumerAddress3 />
<endConsumerCity>HOMEWOOD</endConsumerCity>
<endConsumerState>IL</endConsumerState>
<endConsumerPostalCode>60430</endConsumerPostalCode>
<endConsumerCountryCode />
<fillFacilityNumber>025</fillFacilityNumber>
<shpFacilityNumber>025</shpFacilityNumber>
<homeFacilityAbbrCode>STL</homeFacilityAbbrCode>
<homeFacilityNumber>015</homeFacilityNumber>
<multiCartonIndicator>Y</multiCartonIndicator>
<primaryCustomerIndicator>Y</primaryCustomerIndicator>
<shipToCustomerNumber>954371001</shipToCustomerNumber>
<customerCompanyID>01</customerCompanyID>
<customerTruckID>U888</customerTruckID>
<customerTruckDescription>UDS - ADDISON</customerTruckDescription>
<customerTruckDockID>13</customerTruckDockID>
<thirdPartyBillCarrier />
<thirdPartyBillID />
<thirdPartyBillType />
<qualityCheckIndicator>N</qualityCheckIndicator>
<warehouseLaydownID />
<packListPosition>I</packListPosition>
<preferredPackingType>CTN</preferredPackingType>
<preferredPackingMaterial>PAPER</preferredPackingMaterial>
<preferedPackingInstructions />
<totalOrderCartonQty>6</totalOrderCartonQty>
<convertAddressIndicator>N</convertAddressIndicator>
<dealerInstructionIndicator>Y</dealerInstructionIndicator>
<dealerinstructions1>CPO#: 623559</dealerinstructions1>
<dealerinstructions2>ATTN: DANA GRIFFIN</dealerinstructions2>
<dealerinstructions3>INFO: 612</dealerinstructions3>
<dealerinstructions4>ROUTE: ZNED UNTED</dealerinstructions4>
<dealerinstructions5 />
<dealerinstructions6 />
<shippingInstructionsIndicator>N</shippingInstructionsIndicator>
<shippingInstructions1 />
<shippingInstructions2 />
<shippingInstructions3 />
<shippingInstructions4 />
<shippingInstructions5 />
<shippingInstructions6 />
<specialInstructionsIndicator>N</specialInstructionsIndicator>
<specialInstructions1 />
<specialInstructions2 />
<customeContainerDesc />
- <carton>
<deliveryCartonID>253370905995</deliveryCartonID>
<shipIndicator>Y</shipIndicator>
<deliveryPalletID>X150</deliveryPalletID>
<consolidatedDeliveryCartonID />
<scanDateTime>2009-12-03T19:36:12.00</scanDateTime>
<cartonWeight>52</cartonWeight>
<dropShipFlag>1</dropShipFlag>
<carrierTrackingNumber />
<carrierZoneID>0</carrierZoneID>
<codAmount />
<customerPackageAmount />
<declaredValue />
<residentialDeliveryIndicator />
<serviceTypeCode>00</serviceTypeCode>
<ssccCode>006860244400829393</ssccCode>
- <Item>
<shipPrefix>UNV</shipPrefix>
<shipStockNumber>21200</shipStockNumber>
<itemDescription>PAPER XERO/DUP WE LTR 20#</itemDescription>
<orderQuantity>1</orderQuantity>
<originalShipQuantity>1</originalShipQuantity>
<shipQuantity>1</shipQuantity>
<inventoryUnitCode>CT</inventoryUnitCode>
<inventoryWeightQuantity>52.000</inventoryWeightQuantity>
<upcNumber>00000000000000</upcNumber>
<upcRetailCode>087547212004</upcRetailCode>
<hazmatIndicator>N</hazmatIndicator>
<serialRequiredIndicator>N</serialRequiredIndicator>
<dealerMemoPO>S</dealerMemoPO>
<cartonLineNumber>1</cartonLineNumber>
<orderLineNumber>11</orderLineNumber>
<originalOrderPrefix>UNV</originalOrderPrefix>
<originalOrderStockNumber>21200</originalOrderStockNumber>
<reasonCode />
- <Item_Serial>
<serialNumber />
</Item_Serial>
</Item>
</carton>
</order>
</Delivery>
</Shipment>
This is not the complete XML file as it exceeds the 15000 characters and then I cann't post here. So I have deleted much part of it.
The hierarchy is as following: Shipment->Delivery->Order->Carton->Item.
I have created a XSLT for it which is working fine.
But when I execute my report program it gives CX_SY_XSLT_FORMAT_ERROR saying that
Transformation error: Non-canonical structure of element name XML_OUTPUT.Dear experts,
My report program is as following:-
*& Report Z_ASNTRNS
REPORT Z_ASNTRNS.
*& Report Z_ASNTRNS
TYPE-POOLS: abap, ixml.
TABLES: ZASN_SHIPMENT,ZASN_DELIVERY,ZASN_ORDER,ZASN_CARTON,ZASN_ITEM.
*CONSTANTS gs_file TYPE string VALUE 'C:Documents and SettingsC5134126DesktopRajesh_kandakatlaSampleASNFile.xml'.
This is the structure for the data from the XML file
TYPES: BEGIN OF ts_item,
ZSHIPMENT LIKE ZASN_ITEM-ZSHIPMENT,
VBELN LIKE ZASN_ITEM-VBELN,
ORDER_NUMBER LIKE ZASN_ITEM-ORDER_NUMBER,
CARTON_ID LIKE ZASN_ITEM-CARTON_ID,
ITEM LIKE ZASN_ITEM-ITEM,
CARTON_LINE_NUM LIKE ZASN_ITEM-CARTON_LINE_NUM,
CARTON_LINE_NUMBER LIKE ZASN_ITEM-CARTON_LINE_NUM,
AEDAT(8),
AEZET(6),
ITEM_DESCRIPTION LIKE ZASN_ITEM-ITEM_DESCRIPTION,
ORD_QTY(16),
ORIGINAL_SHIP(16),
SHIP_QTY(16),
UPC_NUMBER LIKE ZASN_ITEM-UPC_NUMBER,
DEALER_MEMO_PO(5),
ORDER_LINE_NUM LIKE ZASN_ITEM-ORDER_LINE_NUM,
STATUS LIKE ZASN_ITEM-STATUS,
END OF ts_item.
TYPES: BEGIN OF ts_carton,
ZSHIPMENT LIKE ZASN_CARTON-ZSHIPMENT,
VBELN LIKE ZASN_CARTON-VBELN,
ORDER_NUMBER LIKE ZASN_CARTON-ORDER_NUMBER,
CARTON_ID LIKE ZASN_CARTON-CARTON_ID,
AEDAT(8),
AEZET(6),
SHIP_INDICATOR LIKE ZASN_CARTON-SHIP_INDICATOR,
TRACKING_NUMBER LIKE ZASN_CARTON-TRACKING_NUMBER,
ZZCARTON_WGT(18),
Item type ts_item,
END OF ts_carton.
TYPES: BEGIN OF ts_order,
ZSHIPMENT LIKE ZASN_ORDER-ZSHIPMENT,
VBELN LIKE ZASN_ORDER-VBELN,
ORDER_NUMBER LIKE ZASN_ORDER-ORDER_NUMBER,
AEDAT(8),
AEZET(6),
SUB_ORDER LIKE ZASN_ORDER-SUB_ORDER,
ORDER_DATE(8),
PRIMARY_ORDER LIKE ZASN_ORDER-PRIMARY_ORDER,
CUSTOMER_PO LIKE ZASN_ORDER-CUSTOMER_PO,
PRIMARY_ID LIKE ZASN_ORDER-PRIMARY_ID,
SHIP_TO LIKE ZASN_ORDER-SHIP_TO,
ANZPK(5),
carton type ts_carton,
END OF ts_order.
TYPES: BEGIN OF ts_delivery,
ZSHIPMENT LIKE ZASN_DELIVERY-ZSHIPMENT,
VBELN LIKE ZASN_DELIVERY-VBELN,
AEDAT(8) TYPE C,
AEZET(6) TYPE C,
PRIMARY_CUSTOMER LIKE ZASN_DELIVERY-PRIMARY_CUSTOMER,
BILL_OF_LADING LIKE ZASN_DELIVERY-BILL_OF_LADING,
CARTON_COUNT(5),
TOTAL_WEIGHT(18),
order type ts_order,
END OF ts_delivery.
TYPES: BEGIN OF ts_shipment,
ZSHIPMENT LIKE ZASN_SHIPMENT-ZSHIPMENT,
MANIFEST_DATE_TIME(25),
AEDAT(8) TYPE C,
AEZET(6) TYPE C,
SDATE(8) TYPE C,
STIME(6) TYPE C,
SFACILITY_NUMBER LIKE ZASN_SHIPMENT-SFACILITY_NUMBER,
ZZCARRIERCODE LIKE ZASN_SHIPMENT-ZZCARRIERCODE,
Delivery type ts_delivery,
END OF ts_shipment.
TYPES: BEGIN OF ts_shipment1,
ZSHIPMENT LIKE ZASN_SHIPMENT-ZSHIPMENT,
MANIFEST_DATE_TIME(25),
SFACILITY_NUMBER LIKE ZASN_SHIPMENT-SFACILITY_NUMBER,
ZZCARRIERCODE LIKE ZASN_SHIPMENT-ZZCARRIERCODE,
PRIMARY_CUSTOMER LIKE ZASN_DELIVERY-PRIMARY_CUSTOMER,
BILL_OF_LADING LIKE ZASN_DELIVERY-BILL_OF_LADING,
CARTON_COUNT(5),
TOTAL_WEIGHT(18),
ORDER_NUMBER LIKE ZASN_ORDER-ORDER_NUMBER,
SUB_ORDER LIKE ZASN_ORDER-SUB_ORDER,
ORDER_DATE(8),
PRIMARY_ORDER LIKE ZASN_ORDER-PRIMARY_ORDER,
CUSTOMER_PO LIKE ZASN_ORDER-CUSTOMER_PO,
PRIMARY_ID LIKE ZASN_ORDER-PRIMARY_ID,
SHIP_TO LIKE ZASN_ORDER-SHIP_TO,
CARTON_ID LIKE ZASN_CARTON-CARTON_ID,
SHIP_INDICATOR LIKE ZASN_CARTON-SHIP_INDICATOR,
TRACKING_NUMBER LIKE ZASN_CARTON-TRACKING_NUMBER,
ZZCARTON_WGT(18),
ITEM LIKE ZASN_ITEM-ITEM,
CARTON_LINE_NUM LIKE ZASN_ITEM-CARTON_LINE_NUM,
CARTON_LINE_NUMBER LIKE ZASN_ITEM-CARTON_LINE_NUM,
ITEM_DESCRIPTION LIKE ZASN_ITEM-ITEM_DESCRIPTION,
ORD_QTY(16),
ORIGINAL_SHIP(16),
SHIP_QTY(16),
UPC_NUMBER LIKE ZASN_ITEM-UPC_NUMBER,
DEALER_MEMO_PO(5),
ORDER_LINE_NUM LIKE ZASN_ITEM-ORDER_LINE_NUM,
END OF ts_shipment1.
TYPES: BEGIN OF t_xml_line,
data(256) TYPE x,
END OF t_xml_line.
*Typdefinition für Airplus
*READ THE DOCUMENTATION "LASG_XML_INVOICE_BTM"!!!
VARs beginning with "a_" are ATTRIBUTES
DATA: l_ixml TYPE REF TO if_ixml,
l_streamfactory TYPE REF TO if_ixml_stream_factory,
l_parser TYPE REF TO if_ixml_parser,
l_istream TYPE REF TO if_ixml_istream,
l_ostream TYPE REF TO if_ixml_ostream,
l_document TYPE REF TO if_ixml_document,
l_node TYPE REF TO if_ixml_node,
l_xml TYPE REF TO cl_xml_document,
l_xmldata TYPE string.
DATA: l_xml_table TYPE TABLE OF t_xml_line,
l_xml_line TYPE t_xml_line,
l_xml_table_size TYPE i.
DATA: l_filename TYPE string.
DATA: xml_out TYPE string ,
size type i.
DATA: l_xml_x1 TYPE xstring.
DATA: l_len TYPE i,
l_len2 TYPE i,
l_tab TYPE tsfixml,
l_content TYPE string,
l_str1 TYPE string,
c_conv TYPE REF TO cl_abap_conv_in_ce.
l_itab TYPE TABLE OF string.
DATA: BEGIN OF l_itab occurs 0,
data(256) type c,
end of l_itab.
TYPES : BEGIN OF TY_TEXT,
data(255) type C,
END OF TY_TEXT.
DATA: F_XML TYPE STRING.
DATA : LT_TEXT_OUT type table of TY_TEXT with header line.
tables
DATA: it_shipment TYPE STANDARD TABLE OF ts_shipment,
wa_shipment TYPE ts_shipment.
*Errorvariables
DATA: xslt_err TYPE REF TO cx_xslt_exception,
err_string TYPE string.
PARAMETERS: pa_file TYPE localfile OBLIGATORY
DEFAULT 'C:Documents and SettingsC5134126DesktopRajesh_kandakatlaSampleASNFile.xml'.
START-OF-SELECTION.
Creating the main iXML factory
l_ixml = cl_ixml=>create( ).
Creating a stream factory
l_streamfactory = l_ixml->create_stream_factory( ).
PERFORM get_xml_table CHANGING l_xml_table_size l_xml_table.
here we use the CALL TRANSFORMATION method which calls
the XSLT program "z_asnfile"
TRY.
CALL TRANSFORMATION ('Z_ASNFILE')
SOURCE xml LT_TEXT_OUT[]
RESULT xml_output = it_shipment
catch any error, very helpful if the XSLT isn't correct
CATCH cx_xslt_exception INTO xslt_err.
err_string = xslt_err->get_text( ).
WRITE: / 'Transformation error: ', err_string.
EXIT.
ENDTRY." setting a breakpoint to watch the workarea
by the internal table "it_airplus"
break-point.
LOOP AT it_shipment INTO wa_shipment.
ENDLOOP.
*& Form get_xml_table
FORM get_xml_table CHANGING l_xml_table_size TYPE i
l_xml_table TYPE STANDARD TABLE.
l_filename = pa_file.
upload a file from the client's workstation
CALL METHOD cl_gui_frontend_services=>gui_upload
EXPORTING
filename = l_filename
filetype = 'BIN'
IMPORTING
filelength = l_xml_table_size
CHANGING
data_tab = l_xml_table
EXCEPTIONS
OTHERS = 19.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
Convert binary to text.
CALL FUNCTION 'SCMS_BINARY_TO_TEXT'
EXPORTING
INPUT_LENGTH = 70000
FIRST_LINE = 0
LAST_LINE = 0
APPEND_TO_TABLE = ' '
MIMETYPE = ' '
WRAP_LINES = 'X'
IMPORTING
OUTPUT_LENGTH =
TABLES
BINARY_TAB = l_xml_table
TEXT_TAB = LT_TEXT_OUT
EXCEPTIONS
FAILED = 1
OTHERS = 2
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. "get_xml_table -
Problem in transforming XML to string using XSLT
Hi there,
I have a R/3 -> XI -> WebService scenario where the message from XI to webservice needs to be sent in document/wrapped mode (the message xml must be embedded in a string element) and this message needs to be digitally signed.
We are using another webservice to sign the messages, also with the message being sent in a string. To transform the XML's into string and vice-versa, we are using XSLT (/people/michal.krawczyk2/blog/2005/11/01/xi-xml-node-into-a-string-with-graphical-mapping).
The problem is that both the signer and the final webservice understand the special characters (like '<', '>', '&', '"' etc) in one way but the XSLT generates them in another way. For example, the character '<', in both webservices, is returned as "<" but the XSL Transformation results in "<".
The problem now is that our messages are always being rejected because the signature is not being recognized as true, though we are almost 100% sure that it's being done correctly. The only possibility to the error that we found is this character mapping being done differently.
So, it's like this:
XI sends string to signer as "<"
XI receives string from signer as "<"
XI processes the message
XI sends string to webservice as "<"
XI receives string from webservice (containing error message) as "<"
Is there a way of making the XSLT to return "<" instead of "<"?
Thanks in advace,
Henrique.For Java Mapping, you can refer this-
/people/prasad.ulagappan2/blog/2005/06/29/java-mapping-part-i
/people/prasad.ulagappan2/blog/2005/06/29/java-mapping-part-ii
/people/prasad.ulagappan2/blog/2005/06/29/java-mapping-part-iii
In Java Mapping, in the startdocument event , you need to check for the specialchars, and just repalce the value required.
But, what i am thinking is , just try with Java functions inside the XSLT mapping instead of going for Java Mapping. You can call java functions from the XSLT. So before the document starts pasring, you need to replace the special characters. I did not try in XSLT like this.
For this , you can think with this e.g
/people/pooja.pandey/blog/2005/06/27/xslt-mapping-with-java-enhancement-for-beginners
Regards,
Moorthy -
How to do 2:1 transformation using XSLT in ccBPM?
Hi,
We have the following ccBPM defined:
A A B A/C D E F
Start---R1---T1---S2---T2---S3---T3---S1---END
R1: Receives Synch XML message A via plain HTTP adapter and opens S/A bridge.
T1: Transforms A into message B using XSLT
S2: Sends message B to a legacy system to do a lookup and gets response C
T2: Transforms A and C into D.
S3: Sends D to another legacy system synchronously and gets response E.
T3: Transforms E to the final response format F
S1: Sends F to the original requestor and close the S/A bridge.
We had created an XSLT style sheet which takes into
consideration of multi-mapping message structure (e.g.
ns0:Messages/ns0:Message1/A and Messages/Message2/C...)
For some reason, the integration process always fails at
Step T2. The only error message we got is:
<b>
Incorrect XML format after mapping: Message expected instead of Catalog
</b>
We went thru all the monitoring/trace tool and could not find any more info on the issue.
I'd really appreciate it if someone can explain the required steps
for designing and configuring n:1 XSLT transformation step.
Thanks in advance
-SimonHi Duke,
I still couldn't get it to work. I compared my xsl file
with yours and they look similar. I was able to turn on the
DefaultTrace. The trace log indicated the mapping call was
successful. But no output was generated. No error message
either. Supposedly XI combines two input xml messsages into
a single message to feed into the XSLT, is there away to
trace out this single input message?
Also do two input messages need to be correlated?
thanks again for your help
-Simon -
Hi,
I have a scenario where I need to perform an XML to XML transformation and I need to do this using XSLT mapping.
I am using XMLSpy.
Could somebody help me on this issue?Any weblogs that can help me on this?
regards,
PrashanthHi Prashanth,
You can do the xsl transformation in XMLSpy itself.First create your source xml file in XMLSpy by selecting file type as xml.After that create your xslt program file by selecting file type as xslt.
Then you can use the xslt program for transformation of source xml into target xml by choosing menu XSL/XQuery->XSL Transformation.
sample xsl code for an example:
source xml structure:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<header>
<detail>
Detail1
</detail>
<detail>
Detail2
</detail>
</header>
<header>
<detail>
Detail3
</detail>
</header>
</root>
xsl program:
<xsl:stylesheet version = '1.0'
xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
<xsl:template match="/">
<root>
<xsl:for-each select="//header">
<idoc>
<xsl:for-each select="detail">
<detail>
<xsl:value-of select="."/>
</detail>
</xsl:for-each>
</idoc>
</xsl:for-each>
</root>
</xsl:template>
</xsl:stylesheet>
target xml structure:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<idoc>
<detail>
Detail1
</detail>
<detail>
Detail2
</detail>
</idoc>
<idoc>
<detail>
Detail3
</detail>
</idoc>
</root>
Hope this would help.
Rgds
Sudhakar. -
Group columns in Excel using XSLT simple transformation
Hi All,
I have to group a few columns in the excel so that they can be expanded or collapsed. I am transforming an internal table into XML using Simple transformation. In this XSLT, I need to add the code to group the particular columns together in the final excel.
Can any one please help me in acheiving the columns grouped together.
Thanks and Regards,
Vishnu.
Edited by: Vishnu Kare on Mar 24, 2011 7:22 AMHi Vishnu, I am also using simple transformations (not XSLT) to create XML excel from SAP data. I always create a template excel workbook from excel by saving it as XML file. This XML can be pasted into the SAP transformation without completely understanding the Microsoft excel syntax. The dynamic SAP data then can be included to the XML in the transformation.
Regards Jack -
Message transformation using XSLT
Hi OSB Gurus,
We are trying to implement following functionality using OSB.
1. We have XML messages in a folder.
2. Need to create a proxy service to take these messages and apply transformations using XSLT.
3. After transformation, put the messages in a different folder which will be picked up by another message broker.
Please give me some pointers about how i can design this. Also i would like to share my findings about the step 2, but having issues for defining input payload which should be defined in the step 1 above. I followed the document http://blog.jayway.com/2010/05/07/xslt-transformations-in-oracle-service-bus/ for registering the xslt transformation, but couldnot make it work as i am not sure about how i can integrate step 1 with step 2.
Thanks so much in advance.Thanks for the suggestion. I will try and see. Here are the files:
1. XML Input(Payload):
<?xml version="1.0" encoding="UTF-8"?>
<ODS>
<LICENSE_TRANSACTION>
<LIC_TRAN_ID>123</LIC_TRAN_ID>
<LIC_CAMIS_ID>String</LIC_CAMIS_ID>
<LIC_NBR>String</LIC_NBR>
<LIC_STATUS_DATE>2000-01-01</LIC_STATUS_DATE>
<LIC_ISSUE_DATE>2001-01-01</LIC_ISSUE_DATE>
<LIC_EXP_DATE>2002-01-01</LIC_EXP_DATE>
<LIC_INSP_REQ_FLAG>true</LIC_INSP_REQ_FLAG>
<LIC_LAST_RENW_SNT_DATE>2003-01-01</LIC_LAST_RENW_SNT_DATE>
<LIC_LAST_RENW_RCVD_DATE>2004-01-01</LIC_LAST_RENW_RCVD_DATE>
<LIC_FED_TAX_ID>String</LIC_FED_TAX_ID>
<LIC_NYS_TAX_ID>String</LIC_NYS_TAX_ID>
<LIC_OPR_HRS_OPN_FROM>14:20:00</LIC_OPR_HRS_OPN_FROM>
<LIC_OPR_HRS_OPN_TO>15:20:00</LIC_OPR_HRS_OPN_TO>
<LIC_TEL_NBR>718-123-1234</LIC_TEL_NBR>
<LIC_EMAIL_ID>String</LIC_EMAIL_ID>
<LIC_FAX_NBR>718-123-1234</LIC_FAX_NBR>
<LIC_NBR_OF_SEATS>10</LIC_NBR_OF_SEATS>
<LIC_ENTITY_CREATE_DATE>2005-01-01</LIC_ENTITY_CREATE_DATE>
<LIC_TRAN_CHG_DATE>2006-01-01</LIC_TRAN_CHG_DATE>
<DETAIL>
<LICENSE>
<LIC_TYPE_CODE>String</LIC_TYPE_CODE>
<LIC_CAMIS_CODE>String</LIC_CAMIS_CODE>
<LIC_CAMIS_CLASS>String</LIC_CAMIS_CLASS>
<LIC_CAMIS_SUB_CLASS>String</LIC_CAMIS_SUB_CLASS>
<BUR_DESC>String</BUR_DESC>
<LIC_CODE_SHORT_DESC>String</LIC_CODE_SHORT_DESC>
<LIC_CODE_LONG_DESC>String</LIC_CODE_LONG_DESC>
</LICENSE>
</DETAIL>
</LICENSE_TRANSACTION>
<STATUS>
<STATUS_CAMIS_CODE>String</STATUS_CAMIS_CODE>
<STATUS_SHORT_DESC>String</STATUS_SHORT_DESC>
<STATUS_DESC>String</STATUS_DESC>
</STATUS>
<PREMISES_ADDRESS>
<ADDR_BLDG_NBR>String</ADDR_BLDG_NBR>
<ADDR_STREET>String</ADDR_STREET>
<ADDR_LOCATION>String</ADDR_LOCATION>
<BOROUGH_DESC>Queens</BOROUGH_DESC>
<ADDR_CITY>String</ADDR_CITY>
<ADDR_STATE>String</ADDR_STATE>
<ADDR_ZIP_CODE>String</ADDR_ZIP_CODE>
<ADDR_HEALTH_AREA>String</ADDR_HEALTH_AREA>
<ADDR_HEALTH_CTR_DIST>String</ADDR_HEALTH_CTR_DIST>
<ADDR_COMMUNITY_DIST>String</ADDR_COMMUNITY_DIST>
<ADDR_BIN>String</ADDR_BIN>
<ADDR_BLOCK_NBR>String</ADDR_BLOCK_NBR>
<ADDR_LOT_NBR>String</ADDR_LOT_NBR>
<ADDR_ASMBLY_DIST>String</ADDR_ASMBLY_DIST>
<ADDR_CONGS_DIST>String</ADDR_CONGS_DIST>
<ADDR_ST_SEN_DIST>String</ADDR_ST_SEN_DIST>
<ADDR_CTY_COUN_DIST>String</ADDR_CTY_COUN_DIST>
<ADDR_XCOORDINATE>123</ADDR_XCOORDINATE>
<ADDR_YCOORDINATE>1234</ADDR_YCOORDINATE>
<DATEOFBUILDINGBUILT>2010-08-11</DATEOFBUILDINGBUILT>
<SCHOOLAREA>String</SCHOOLAREA>
<POLICE>String</POLICE>
<FIRE>String</FIRE>
<LOWCROSSSTREET>String</LOWCROSSSTREET>
<HIGHCROSSSTREET>String</HIGHCROSSSTREET>
<ISPARK>false</ISPARK>
</PREMISES_ADDRESS>
<MAILING_ADDRESS>
<ADDR_BLDG_NBR>String</ADDR_BLDG_NBR>
<ADDR_STREET>String</ADDR_STREET>
<ADDR_LOCATION>String</ADDR_LOCATION>
<BOROUGH_DESC>Queens</BOROUGH_DESC>
<ADDR_CITY>String</ADDR_CITY>
<ADDR_STATE>String</ADDR_STATE>
<ADDR_ZIP_CODE>String</ADDR_ZIP_CODE>
</MAILING_ADDRESS>
<BUSINESS>
<BUS_TYPE_SHORT_DESC>String</BUS_TYPE_SHORT_DESC>
<BUS_TYPE_LONG_DESC>String</BUS_TYPE_LONG_DESC>
<BUS_ID>String</BUS_ID>
<BUS_TRADE_NAME>String</BUS_TRADE_NAME>
<BUS_CORP_NAME>String</BUS_CORP_NAME>
<SITE_TYPE>String</SITE_TYPE>
<DESCRIPTION>String</DESCRIPTION>
<WEBSITE>String</WEBSITE>
<AGE_RANGE>String</AGE_RANGE>
<BUSINESS_PRINCIPAL>
<PRINCIPAL>
<BUS_PRNC_CAMIS_ID>124</BUS_PRNC_CAMIS_ID>
<BUS_PRNC_TITLE>String1</BUS_PRNC_TITLE>
<BUS_PRNC_FULL_NAME>String1</BUS_PRNC_FULL_NAME>
<BUS_PRNC_FNAME>String1</BUS_PRNC_FNAME>
<BUS_PRNC_LNAME>String1</BUS_PRNC_LNAME>
<BUS_PRNC_MNAME>String1</BUS_PRNC_MNAME>
<BUS_PRNC_DOB>2004-01-01</BUS_PRNC_DOB>
<HOMEPHONE>718-123-1234</HOMEPHONE>
<WORKPHONE>718-123-1234</WORKPHONE>
<FAX>718-123-1234</FAX>
<EMAIL>String1</EMAIL>
<CELLPHONE>718-123-1234</CELLPHONE>
<NOTES>String1</NOTES>
<STARTDATE>2004-01-01</STARTDATE>
<ENDDATE>2004-01-01</ENDDATE>
<ADDRESS>
<ADDR_BLDG_NBR>String1</ADDR_BLDG_NBR>
<ADDR_STREET>String1</ADDR_STREET>
<ADDR_LOCATION>String1</ADDR_LOCATION>
<BOROUGH_DESC>Queens</BOROUGH_DESC>
<ADDR_CITY>String1</ADDR_CITY>
<ADDR_STATE>String1</ADDR_STATE>
<ADDR_ZIP_CODE>String1</ADDR_ZIP_CODE>
</ADDRESS>
</PRINCIPAL>
<PRINCIPAL>
<BUS_PRNC_CAMIS_ID>123</BUS_PRNC_CAMIS_ID>
<BUS_PRNC_TITLE>String2</BUS_PRNC_TITLE>
<BUS_PRNC_FULL_NAME>String2</BUS_PRNC_FULL_NAME>
<BUS_PRNC_FNAME>String2</BUS_PRNC_FNAME>
<BUS_PRNC_LNAME>String2</BUS_PRNC_LNAME>
<BUS_PRNC_MNAME>String2</BUS_PRNC_MNAME>
<BUS_PRNC_DOB>2004-01-01</BUS_PRNC_DOB>
<HOMEPHONE>718-123-1234</HOMEPHONE>
<WORKPHONE>718-123-1234</WORKPHONE>
<FAX>718-123-1234</FAX>
<EMAIL>String2</EMAIL>
<CELLPHONE>718-123-1234</CELLPHONE>
<NOTES>String2</NOTES>
<STARTDATE>2004-01-01</STARTDATE>
<ENDDATE>2004-01-01</ENDDATE>
<ADDRESS>
<ADDR_BLDG_NBR>String2</ADDR_BLDG_NBR>
<ADDR_STREET>String2</ADDR_STREET>
<ADDR_LOCATION>String2</ADDR_LOCATION>
<BOROUGH_DESC>Queens</BOROUGH_DESC>
<ADDR_CITY>String2</ADDR_CITY>
<ADDR_STATE>String2</ADDR_STATE>
<ADDR_ZIP_CODE>String2</ADDR_ZIP_CODE>
</ADDRESS>
</PRINCIPAL>
</BUSINESS_PRINCIPAL>
<BUSINESS_INSURANCE>
<BUS_WRK_CMP_CARRIER>String</BUS_WRK_CMP_CARRIER>
<BUS_WRK_CMP_POLICY_NBR>String</BUS_WRK_CMP_POLICY_NBR>
<BUS_WRK_CMP_EXP_DATE>2004-01-01</BUS_WRK_CMP_EXP_DATE>
<BUS_DISB_INSU_CARRIER>String</BUS_DISB_INSU_CARRIER>
<BUS_DISB_INSU_PLCY_NBR>String</BUS_DISB_INSU_PLCY_NBR>
<BUS_DISB_INSU_PLCY_EXP_DATE>2004-01-01</BUS_DISB_INSU_PLCY_EXP_DATE>
</BUSINESS_INSURANCE>
</BUSINESS>
<RECEIPT>
<RCPT_PAYOR_NAME>String</RCPT_PAYOR_NAME>
<RCPT_CASH_FLG>true</RCPT_CASH_FLG>
<RCPT_REMIT_AMT>123</RCPT_REMIT_AMT>
<RCPT_APLY_AMT>123.50</RCPT_APLY_AMT>
<RECEIPT_DETAILS>
<RCPT_DET_PMT_AMT>123.51</RCPT_DET_PMT_AMT>
<RCPT_DET_PMT_DATE>2004-01-01</RCPT_DET_PMT_DATE>
<RCPT_DET_PMT_TIME>20:15:00</RCPT_DET_PMT_TIME>
<RCPT_DET_PMT_CHK_NBR>1111</RCPT_DET_PMT_CHK_NBR>
</RECEIPT_DETAILS>
<RECEIPT_DETAILS>
<RCPT_DET_PMT_AMT>23.50</RCPT_DET_PMT_AMT>
<RCPT_DET_PMT_DATE>2004-01-01</RCPT_DET_PMT_DATE>
<RCPT_DET_PMT_TIME>20:15:11</RCPT_DET_PMT_TIME>
<RCPT_DET_PMT_CHK_NBR>22222</RCPT_DET_PMT_CHK_NBR>
</RECEIPT_DETAILS>
</RECEIPT>
</ODS>
I will post remaining XSLT and output in my next posts.
Thanks for your help. -
How to use OAF transform sotred xml documents using XSLT...
Does anyone have any experience using XSLT in OAF? Specifically, I have xml documents stored in a clob to which I wish to apply an XSLT transformation and then store the transformed documents back into the clob. Is there a way to apply an XSLT transformation using say BI-Publisher via OAF?
"XML DIFF" are the keywords you can use to search for products that do this. Last time I looked there was a lot of XML Diff implementations, but none of them produced human-readable output that I really liked. I expect that's because XML diff is an easy thing for people to ask for but not an easy thing to do, given the considerable number of ways there are to change a document.
-
Hi!
I have a simple question: how can I use xslt in pl/sql?
I've tried this:
DECLARE
v_XML XMLTYPE;
v_XSLT XMLTYPE;
BEGIN
SELECT XMLCol --it's a valid XML.
INTO v_XML
FROM tb_Controle;
SELECT XSLTCol --I don't know how to use XSLT.
INTO v_XSLT
FROM tb_XSLT;
DBMS_OUTPUT.PUT_LINE(XMLTYPE.TRANSFORM(v_XML,v_XSLT).GETSTRINGVAL());
END;But it returns the error:
ERROR at line 1:
ORA-31011: XML parsing failed
ORA-19202: Error occurred in XML processing
ORA-06512: at "SYS.XMLTYPE", line 174
ORA-06512: at line 13When a xlst has import and include tags, how the files are found? Is there something like the xsd schema registration?
<xsl:import href="cte.xslt" />
<xsl:include href="../functions.xslt"/> Another question: after applying the style sheet, the result is a text? 'cause I need to send the result as a text.
Thanks!how can I use xslt in pl/sql?
declare
v_xml xmltype;
v_xslt xmltype;
v_xml_result xmltype;
begin
select xmlcol --it's a valid XML.
into v_xml
from tb_controle;
select xsltcol --I don't know how to use XSLT.
into v_xslt
from tb_xslt;
select xmltype.transform(v_xml,v_xslt) into v_xml_result from dual;
dbms_output.put_line(v_xml_result.getstringval());
end; -
Applying stylesheet to XMLType using SQL operator
How can I apply a stylesheet to a XMLType in the database using a SQL query?
I am using Oracle 9i Release 2.
I have seen it referenced in many different PDF's from Oracle but haven't
seen any code examples.
Any help would be very appreciated!
Best regards
Christer Nordvik
System DeveloperJust read the fabulous manual (in this case, A96616-01: Oracle9i API Reference - XDK and Oracle XML DB, page 24-9); or search for "transform". One of my working examples:
select data1.transform(xdburitype('/age/default.xslt').getxml(), NULL) from data1 data1; Make sure you use an alias for the table name (I just use the same name as the real table).
Age Jan -
ERROR WHILE USING XSLT MAPPING IN INTERFACE MAPPING
Hi,
We are using an xslt mapping in our scenario but while i load the XSLT mapping in the interface mapping i get a message :
Transformer configuration exception occurred when loading XSLT
sorce interface :outbound and asyncronous.
mapping : XSLT mapping (imported as a zip file)
target interface: abstract,asyncronous.
The xslt runs well in standalone and its well formed and there is no name space issue.
please help if any one has faced such a situation while using XSLT mapping.
regards,
Anirban.Hi Anirban
When you say it runs well <i>standalone</i> what exactly do you mean? Which XSLT processor are you using to run it? There are subtle difference between XSTL processors that can sometimes result in incompatibilities. For instance, I have seen XSLTs run correctly in XMLSpy but incorrectly (or at least slightly differently) in XI.
Regards,
Thorsten -
String to XML using XSLT..
Hey folks
Am having a XML in a single string in ma request and wanna convert that into a XML. Tried that using XSLT but seems am missing out on some point...It works fine with Stylus but fails within PI
Following code am using :
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:a="http://www.sdn.com/xslt">
<xsl:output method="xml" omit-xml-declaration="yes"/>
<xsl:template match="/">
<xsl:for-each select="//*:string">
<xsl:value-of select="." disable-output-escaping="yes"/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
The name of the element in which i get the whole XML is "string".
My request string is something liek this :
<xml version="1.0" encoding="UTF-8"?><ProductDefinition><RefNo>23232323</RefNo><Description>dfdfdfdfdf</Description></ProductDefinition>
Now am trying to generate a XML using the XSL but its failing in PI...
Kindly point out where am i going wrong?Thanks, but graphical mapping does not expose <![CDATAhttp:// ... ] to be removed. Surely this must be done with XSLT?+
Don't worry about <![CDATA ... pass your whole string in source message like this : <![CDATAhttp://<?xml version=\"1.0\" encoding=\"UTF-8\"?><ProductDefinition><RefNo>12345</RefNo><Description>Test</Description></ProductDefinition>]>
1st the graphical mapping where you use replace string will replace <?xml version=\"1.0\" encoding=\"UTF-8\"?> and then the XSLT mapping would get a input like this : <![CDATAhttp://<ProductDefinition><RefNo>12345</RefNo><Description>Test</Description></ProductDefinition>]> which would eventually form your target structure...
I tried it myself few days back so its a sure shot method ... just try it
Cheers!!!
Soumen
Maybe you are looking for
-
VT02N - do PGI and Invoice for certain deliveries either based on certain conditions
Hi Friends , We are using VT04 for creating shipments . While shipment completion stage in VT02N an activity profile has been maintained which does both the Goods issue and Invoice. We have a business requirement , PGI and Invoice should be create
-
How to install itunes on windows server 2012
I am trying to instal itune on my server please help me
-
Import a pdf document to an active x control
I want to display a PDF file in active x window.
-
Creating a query for task list operations
hello all I checked the forum for similar questions but could not find any. I am trying to create a task list for the following: 1) specific plant 2) generic task list 3) specific group counter 4) specific operations type (filtered by control keys) i
-
Crystal XI Starting with a page other than "1"
I have a crystal report that contains 2 subreports. I have set it up to number pages "N of M" using the page number special field. I would like to keep this same format, but I would like the page number to start at "13". Edited by: Megan5 on Jan 18,