How to unload XML after loadXML()?
Hi:
I am new to LiveCycle Designer. I am trying to use loadXML() to load an external xml string like this:
xfa.datasets.loadXML(xmlString, false, false);
then I use "xfa.resolveNode()" to parse it and it works fine.
The problem is that if I call loadXML() again passing a new xml string, I still retrieve the first one. I guess "loadXML()" always appends the incoming xml string to the current object model so it can't overwrite the first one. So my question is that can you unload the xml so that you can load it again with a new xml string, or is there different way to do this? Can you provide some sample code?
Thanks.
Ligong
Try changing your third parameter to true when you're loading the new xml string:
xfa.datasets.loadXML(xmlString,false,true);
That should overwrite the existing...
Similar Messages
-
Interactive Gantt chart - how to receive updated XML after user changes
Hello,
I failed to receive changed XML after user updates.
I've constructed following example:
Created context attribute of type XSTRING, binded it to the "dataSource" property of the Gantt chart control.
I pass following XML to the control:
<?xml version="1.0" encoding="iso-8859-5" ?>
<SAPJNetData version="1.0">
<Application type="GANTT" version="1.0" />
<TypeRepository version="1.0" href="/SAP/BC/WebDynpro/SAP/ZT_INV_WDR_TEST_GANTT/gantPR02P00086_3_tr.xml" />
<UserInterface version="1.0" href="/SAP/BC/WebDynpro/SAP/ZT_INV_WDR_TEST_GANTT/gantPR02P00086_3_ui.xml" />
<Graph type="Gantt.Graph" version="1.0">
<rows>
<row id="001" />
<row id="002" />
<row id="003" />
</rows>
<dates timeZone="GEurope/Berlin" locale="de_DE" format="dd.MM.yyyy" dateEnd="20.01.2010">
<section date="01.01.2010" unit="DAY" unitSize="20" />
<calendarItem id="Cal.1stDayInMonth">
<repetition unit="MONTH" />
</calendarItem>
<calendarItem id="Cal.1stDayInWeek">
<repetition unit="WEEK" />
</calendarItem>
</dates>
<view>
<viewpos date="01.01.2010" />
</view>
<chart id="Dummy">
<timeScale>
<section index="0">
<ribbon type="Gantt.CProjects.Ribbon.Month" />
<ribbon type="Gantt.CProjects.Ribbon.3Days" />
</section>
</timeScale>
<grid type="Grid.CProjects.Gantt.TimeLine" calendarIDs="Cal.1stDayInWeek" />
<table type="Gantt.Table" id="CProj-Table">
<defaults typeCell="L.Table" typeHeader="L.Table" />
<tree showRootIcons="TRUE" />
<cols showInitially="4">
<ids>TREE,ID2,ID3</ids>
</cols>
<header>
<header width="30" />
<label colid="TREE" width="250">Этап</label>
<label colid="ID2">Дата с</label>
<label colid="ID3">Дата по</label>
</header>
<rows>
<ids>001,002,003</ids>
</rows>
<row>
<header>1</header>
<tree>Top Item</tree>
<label>01.01.2010</label>
<label>20.01.2010</label>
</row>
<row>
<header>2</header>
<tree parentRow="001">Subitem 1</tree>
<label>01.01.2010</label>
<label>10.01.2010</label>
</row>
<row>
<header>3</header>
<tree parentRow="001">Subitem 2</tree>
<label>11.01.2010</label>
<label>20.01.2010</label>
</row>
</table>
<graph>
<view>
<backColor type="White" />
</view>
<node id="001" type="Gantt.CProjects.SummaryNode" rowID="001">
<dates>
<date>01.01.2010</date>
<date>20.01.2010</date>
</dates>
</node>
<node id="002" type="Gantt.CProjects.Node" rowID="002">
<dates>
<date>01.01.2010</date>
<date>10.01.2010</date>
</dates>
</node>
<node id="003" type="Gantt.CProjects.Node" rowID="003">
<dates>
<date>11.01.2010</date>
<date>20.01.2010</date>
</dates>
</node>
</graph>
</chart>
</Graph>
</SAPJNetData>
Then I run my example application, press standard "Save" button in Gantt chart control.
After that my XML in context changes, but it's incorrect. There is no <graph> tag at all - this tag should contain all significant parameters of the chart.
The resulting XML below:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<SAPJNetData build="9295" date="04-Aug-2010 10:19:13" host="localhost" version="1.1247">
<Application type="GANTT" version="1.0"/>
<TypeRepository href="/SAP/BC/WebDynpro/SAP/ZT_INV_WDR_TEST_GANTT/gantPR02P00086_3_tr.xml" version="1.0"/>
<UserInterface href="/SAP/BC/WebDynpro/SAP/ZT_INV_WDR_TEST_GANTT/gantPR02P00086_3_ui.xml" version="1.0"/>
<GraphGantt version="1.1247"/>
</SAPJNetData>
All the chart in fact has completely disappeared. There is nothing left but file header.
The question: How to get XML with all user changes back from the Gantt chart control?Long time, hah..
Anyways thanks to behave like a responsible person on SCN and taking care of your threads..
Liked. -
How to retain prolog in output xml after parse the input xml
Hi,
I am using com.bea.xml.XmlObject.Factory.parse(String) method to parse a xml.
Input XML is having prolog defore the root node.But after parse the xml using the above method, the prolog is not there in the Output XML.
can any one help me to retain the prolog in Output XML as it is in Input XML......
Thanks in advance..
Regards,
DebaHi,
The Input XML is like
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SOAP-ENV:Body>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
But after parse the Output XML become
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SOAP-ENV:Body>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
But due to project requirement i want to keep the prolog(<?xml version="1.0" encoding="UTF-8"?>) as it is with Output XML after parse the xml.
can i use any XMLOption while calling parse() method...Or any one have any otherway to retain prolog after parse ?
please help me to get it .
Thanks in advance.
Regards,
Deba -
Field that is Calculated - Read Only - Capturing output in XML after?
Hello:
I have defined a Calculated - Read Only field but I have not successfully bound it or captured its value in XML.
In my Object Palette I do not have a Binding tab, so how do I capture its value in XML after?
Thanks,
Newbie in AdobeUnfortunately the fields you included in that Import/Export were text fields and thus had the Binding tab available in the Object Palette.
Fields that are of type Calculated - Read Only do not have the Binding tab, so to get around that, I defined my variable to be Read Only, and added my calculation to the calculate script. The Binding tab was available and thus allowed me to bind my output.
Problem solved.
Thanks anyways,
Newbie in Adobe -
How to trigger xml publisher API (ex:Delivering Documents via e-Mail)?
Dear All:
How to use xml publisher API ?
In user's guide always talk API's code.(ex:Delivering Documents via e-Mail
// create delivery manager instance
DeliveryManager dm = new DeliveryManager();
// create a delivery request
DeliveryRequest req =
dm.createRequest(DeliveryManager.TYPE_SMTP_EMAIL);
// set email subject
req.addProperty(DeliveryPropertyDefinitions.SMTP_SUBJECT, "Invoice");
// set SMTP server host
req.addProperty(
DeliveryPropertyDefinitions.SMTP_HOST, "mysmtphost");
// set the sender email address
req.addProperty(DeliveryPropertyDefinitions.SMTP_FROM,
"[email protected]");
// set the destination email address
req.addProperty(
DeliveryPropertyDefinitions.SMTP_TO_RECIPIENTS,
"[email protected], [email protected]" );
// set the content type of the email body
req.addProperty(DeliveryPropertyDefinitions.SMTP_CONTENT_TYPE,
"text/html");
// set the document file name appeared in the email
req.addProperty(DeliveryPropertyDefinitions.SMTP_CONTENT_FILENAME,
"body.html");
// set the document to deliver
req.setDocument("/document/invoice.html");
// submit the request
req.submit();
// close the request
req.close(); )
Not say how to use this code to account effect !!
Having anybody to use API before?
Please tell me how to use that,thanks!!
BY Emily_yeHi Emily
I had the same question. After much research and a lot of deduction I produced the following:
import oracle.apps.fnd.cp.request.*;
import java.io.*;
import java.sql.*;
import java.util.Vector;
import oracle.apps.fnd.util.*;
import oracle.apps.xdo.XDOException;
import oracle.apps.xdo.common.pdf.util.PDFDocMerger;
import oracle.apps.xdo.delivery.DeliveryException;
import oracle.apps.xdo.delivery.DeliveryManager;
import oracle.apps.xdo.delivery.DeliveryPropertyDefinitions;
import oracle.apps.xdo.delivery.DeliveryRequest;
import oracle.jdbc.driver.OracleCallableStatement;
public class RunTravProgram implements JavaConcurrentProgram {
CpContext mCtx; // global reference to concurrent program context
LogFile logFile; // global reference to context logfile
OutFile outFile; // global reference to context outfile
Connection mConn = null;
ReqCompletion lRC;
//File Separator
private String mFileSeparator;
// globals for template
String XDOAppShortName = "";
String XDOtemplateCode = "";
// hard-wired constants for template addition
final String XDOLanguage = "en";
final String XDOTerritory = "US";
final String XDOFinal_format = "PDF";
final String XDOtemplateType = "TEMPLATE_SOURCE";
String PDFFile = "";
String outFilePath = "";
String progShortName = "";
String progDesc = "";
Integer iRequestID = 0;
String sWatermark = ""; // watermark text
String emailAddress = ""; // Not Implemented
String emailServer = "";
public static final String M_SUCCESS = "SUCCESS";
public static final String M_ERROR = "ERROR";
public static final String M_WARNING = "WARNING";
* Create a Java FND ConcurrentRequest objec to call fnd_request.submit_request
* The first three parameters are:
* Application Short Name -- Application Short name (ie. WAHC)
* Current Program Short Name -- Concurrent Program being called
* Current Program Description -- description for above
* These should be the first three parameters passed by the concurrent
* program in this order. The next two are constants set to null
* These are followed by the parameters passed by the first concurrent
* program that are being passed to the next concurrent program.
* I am limiting the parameter list to ten for now.
// Dynamic PLSQL statement used to get a concurrent request completion status
// This is necessary because the java class does not provide this method :-(
String mGetCompleteStatus =
"DECLARE R_VAL BOOLEAN; " + "b_phase VARCHAR2 (80) := NULL; " +
"b_status VARCHAR2 (80) := NULL; " +
"b_dev_phase VARCHAR2 (80) := NULL; " +
"b_dev_status VARCHAR2 (80) := NULL; " +
"b_message VARCHAR2 (240) := NULL; " + "BEGIN " +
"r_val := fnd_concurrent.wait_for_request (:1,5,1000," +
"b_phase,b_status,b_dev_phase,b_dev_status,b_message); " +
":2 := b_phase; " + ":3 := b_status; " + ":4 := b_message; " + "end;";
public RunTravProgram() {
// no constructor necessary for now
* Concurrent Processing provides an interface 'JavaConcurrentProgram' with abstract method
* runProgram() which passes the concurrent processing context 'CpContext'. The concurrent
* program developer will implement all of their business logic for a concurrent program in
* runProgram(). The main() method, implemented by AOL, will call runProgram() after
* performing all of the required initialization for the concurrent program, including
* establishing a database connection, initializing the required contexts, and setting up
* the log and output files. CpContext will have the request specific log and output
* file input methods
public void runProgram(CpContext pCpContext) {
mCtx = pCpContext;
OracleCallableStatement lStmt = null;
boolean bCompletion = true;
String sPhase = "";
String sStatus = "";
String sMessage = "";
//get handle on request completion object for reporting status
lRC = pCpContext.getReqCompletion();
// assign logfile
logFile = pCpContext.getLogFile();
// assign outfile
outFile = pCpContext.getOutFile();
// assign fileseparator
mFileSeparator = getFileSeparator();
// get the JDBC connection object
mConn = pCpContext.getJDBCConnection();
outFilePath =
((new File(outFile.getFileName())).getParent() == null ? "" :
(new File(outFile.getFileName())).getParent() +
mFileSeparator);
logFile.writeln("OutFile File Path: -> " + outFilePath, 0);
// get parameter list object from CpContext
// these come from the concurrent program
ParameterList lPara = pCpContext.getParameterList();
// create a temporary array and retrieve the parameters created by
// the program. Currently limiting the number of parameters to 10 for now
String pvals[] = new String[10];
int pcount = 0;
while (lPara.hasMoreElements()) {
NameValueType aNVT = lPara.nextParameter();
pvals[pcount] = aNVT.getValue();
pcount++;
if (pcount > 9)
break;
// send parameter values to the log file
logFile.writeln("Arg 1: APPL_SHORT_NAME -> " + pvals[0], 0);
logFile.writeln("Arg 2: CURR_PROG_SHORT_NAME -> " + pvals[1], 0);
logFile.writeln("Arg 3: CURR_PROG_DESCRIPTION -> " + pvals[2], 0);
logFile.writeln("Arg 4: TEMPLATE_CODE -> " + pvals[3], 0);
logFile.writeln("Arg 5: P_PLANT_CODE -> " + pvals[4], 0);
logFile.writeln("Arg 6: P_BATCH_NO -> " + pvals[5], 0);
logFile.writeln("Arg 7: P_SHOW_PROMISE -> " + pvals[6], 0);
logFile.writeln("Arg 8: P_WATERMARK -> " + pvals[7], 0);
XDOtemplateCode = pvals[3]; // store the template name globally
progShortName = pvals[1]; // store the program short name globally
XDOAppShortName = pvals[0]; // store the application short name
sWatermark = pvals[7]; // store the watermark globally
progDesc = pvals[2];
try {
// create a concurrent request object
ConcurrentRequest cr = new ConcurrentRequest(mConn);
// use the parameters to call fnd_request.submit_request
cr.addLayout(XDOAppShortName, XDOtemplateCode, XDOLanguage,
XDOTerritory, XDOFinal_format);
Vector param = new Vector();
param.add(pvals[4]); // plant code
param.add(pvals[5]); // batch ID
param.add(pvals[6]); // Show SO info flag
iRequestID =
cr.submitRequest(XDOAppShortName, progShortName, progDesc,
null, false, param);
mConn.commit();
// send the request ID to the log file
logFile.writeln("-- Request ID: ->" + Integer.toString(iRequestID),
0);
// call fnd_concurrent.wait_for_request to wait until the request
// has ended - use this to check the request status before proceeding
lStmt =
(OracleCallableStatement)mConn.prepareCall(mGetCompleteStatus);
lStmt.setInt(1, iRequestID);
lStmt.registerOutParameter(2, java.sql.Types.VARCHAR, 0, 255);
lStmt.registerOutParameter(3, java.sql.Types.VARCHAR, 0, 255);
lStmt.registerOutParameter(4, java.sql.Types.VARCHAR, 0, 255);
lStmt.execute();
// get the results of the completion
sPhase = lStmt.getString(2);
sStatus = lStmt.getString(3);
sMessage = lStmt.getString(4);
lStmt.close();
// send the results of the request processing to the log file
logFile.writeln("-- Phase: -> " + sPhase, 0);
logFile.writeln("-- Status: -> " + sStatus, 0);
logFile.writeln("-- Message: -> " + sMessage, 0);
// test here to make sure it completed correctly
if (sPhase.equals("Completed") && sStatus.equals("Normal")) {
// construct the PDF file name generated by the called request
PDFFile = progShortName + "_" + iRequestID + "_1.pdf";
// add a watermark to the generated PDF
// create an output stream for the existing PDF
// and set ouput to append
OutputStream pdfout =
new FileOutputStream(outFilePath + PDFFile, true);
// create an inputstream array (required by calling method)
InputStream pdfin[] = new InputStream[1];
pdfin[0] = new FileInputStream(outFilePath + PDFFile);
// add the watermark passed as a parameter
bCompletion = addWatermark(pdfin, pdfout);
// assign the modified file to the context out
// this will print using this request
if (bCompletion)
outFile.setOutFile(outFilePath + PDFFile);
// release the connection object
// and set the completion status for the request
if (bCompletion) {
pCpContext.getReqCompletion().setCompletion(ReqCompletion.NORMAL,
} else {
lRC.setCompletion(ReqCompletion.WARNING, M_WARNING);
pCpContext.releaseJDBCConnection();
} catch (SQLException s) {
logFile.writeln("SQL Error: Exception thrown w/ error message: " +
s.getMessage(), 0);
lRC.setCompletion(ReqCompletion.WARNING, M_WARNING);
pCpContext.releaseJDBCConnection();
} catch (IOException ioe) {
logFile.writeln("IO Error: Exception thrown w/ error message: " +
ioe.getMessage(), 0);
lRC.setCompletion(ReqCompletion.WARNING, M_WARNING);
pCpContext.releaseJDBCConnection();
} catch (Exception e) {
logFile.writeln("General Exception: " + e.getMessage(), 0);
lRC.setCompletion(ReqCompletion.WARNING, M_WARNING);
pCpContext.releaseJDBCConnection();
} finally {
try {
if (lStmt != null)
lStmt.close();
pCpContext.releaseJDBCConnection();
} catch (SQLException e) {
logFile.writeln(e.getMessage(), 0);
lRC.setCompletion(ReqCompletion.WARNING, M_WARNING);
* addWatermark()
* @param pdfin
* @param pdfout
* @return boolean
* This method will work for an existing document or a newly generated
* one. Set the outputstream append flag to false for a new document
* and true for an existing one.
* NOTE: PDFDocMerger requires an inputstream array even if it only
* contains one document.
private boolean addWatermark(InputStream[] pdfin, OutputStream pdfout) {
if (!sWatermark.equals("")) {
try {
PDFDocMerger docMerger = new PDFDocMerger(pdfin, pdfout);
//docMerger.setTextDefaultWatermark(sWatermark);
docMerger.setTextWatermark(sWatermark, 80f, 50f);
docMerger.setTextWatermarkAngle(25);
docMerger.setTextWatermarkColor(1.0f, .50f, .50f);
docMerger.setTextWatermarkFont("Garamond", 100);
docMerger.process();
docMerger = null;
return true;
} catch (XDOException e) {
logFile.writeln("Watermark process Failed: " + e.getMessage(),
0);
return false;
return true;
* Returns the file separator
private String getFileSeparator() {
return (System.getProperty("file.separator"));
* EBSEmailDelivery
* @return
* Just for testing right now.
private boolean EBSEmailDelivery() {
if (!emailAddress.equals("")) {
try {
// create delivery manager instance
DeliveryManager delMgr = new DeliveryManager();
// create a delivery request
DeliveryRequest delReq =
delMgr.createRequest(DeliveryManager.TYPE_SMTP_EMAIL);
// set email subject
delReq.addProperty(DeliveryPropertyDefinitions.SMTP_SUBJECT,
"EBS Report:" + progDesc +
" for request: " + iRequestID);
// set SMTP server host
delReq.addProperty(DeliveryPropertyDefinitions.SMTP_HOST,
emailServer); // need to supply the email smtp server
// set the sender email address
delReq.addProperty(DeliveryPropertyDefinitions.SMTP_FROM,
emailAddress);
// set the destination email address
delReq.addProperty(DeliveryPropertyDefinitions.SMTP_TO_RECIPIENTS,
emailAddress);
// set the content type of the email body
delReq.addProperty(DeliveryPropertyDefinitions.SMTP_CONTENT_TYPE,
"application/pdf");
// set the document file name appeared in the email
delReq.addProperty(DeliveryPropertyDefinitions.SMTP_CONTENT_FILENAME,
PDFFile);
// set the document to deliver
delReq.setDocument(outFilePath + PDFFile);
// submit the request
delReq.submit();
// close the request
delReq.close();
return true;
} catch (DeliveryException de) {
logFile.writeln("email process Failed: " + de.getMessage(), 0);
return false;
return true;
This is the class for a JCP I created to perform the following:
1) Launch an existing Concurrent Program that produces PDF output
2) Grab the PDF and apply a watermark based on user input or conditions
3) associate the modified PDF to CP output for PASTA printing
It isn't elegant but it is fairly simple. I added the email capability and tested it but am not implementing it at the present time.
there is a fair amount of information out there that explains how to create a JCP councurrent program but very little that demonstrates the class needed.
I hope this helps -
How to use XML on another server?
I need help figuring out how to consume XML from another
domain. It's a domain that is providing search functionality for a
website. The domain indexes my site, and I can "post" searches to
an URL with my search terms URL-escaped. It returns an XML
document. I want to use Spry to consume that XML.
I'm pretty experienced consuming XML and using it in Spry
pages, but to date have not done anything that crosses domains. I
will have access to Perl on the production box that hosts my site,
with a remote chance that I could get PHP enabled. This is a public
web server for a very very large financial company, so my choices
of what can go on a production server outside our firewall are
limited by corporate policy.
What are the basic steps that need to happen? Can someone
bullet-point how this might work from one end to the other? I have
the basic theory down of what needs to happen, but not much else at
this point.
Here is what I understand:
1 - user fills in search form and hits enter
2 - form posts to a Perl script on my box
3 - Perl takes the form variables and appends them to a URL
request to the 3rd party search domain
4 - 3rd party search company returns an xml file
5 - not sure what Perl needs to do here with the xml so that
my HTML page with Spry can read it....it does something, let's just
say
6 - Perl writes out a page, based on a template in my site
that then consumes the XML that is somehow available on my domain
now...
This raises so many questions...like if I save the results
XML on my server, how do I get rid of them after they are consumed
and also how do I prevent other sessions from accessing that "saved
copy" of XML...I know I'm thinking wrong here. That can't be how
it's done...Hence...my question about all this.
Where do I start?
Thanks,
Douguser12004297 wrote:
thank you so much - however on the source database I dropped tables and users- then I did an "alter system switch logfile;" - copied the archivelogs to the / test DRP and loaded the archivelogs and the users and tables were not dropped like i did in source
RMAN> tartup mount
Oracle instance started
database mounted
Total System Global Area 1119043584 bytes
Fixed Size 2227624 bytes
Variable Size 620757592 bytes
Database Buffers 469762048 bytes
Redo Buffers 26296320 bytes
RMAN> CATALOG START WITH '/oradb1/backup';
using target database control file instead of recovery catalog
searching for all files that match the pattern /oradb1/backup
List of Files Unknown to the Database
=====================================
File Name: /oradb1/backup/1_345_819727387.dbf
Do you really want to catalog the above files (enter YES or NO)? YES
cataloging files...
cataloging done
List of Cataloged Files
=======================
File Name: /oradb1/backup/1_345_819727387.dbf
RMAN> recover database;
Starting recover at 20-NOV-13
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=249 device type=DISK
starting media recovery
media recovery complete, elapsed time: 00:00:02
Finished recover at 20-NOV-13
RMAN> alter database open;
database opened
RMAN
Simply making the database aware of the archivlogs does NOT mean rman will determine they need to be used for a specific recovery operation. What all had you done to/with this database prior to this? Keep firmly in mind the effect of any OPEN RESETLOGS. -
How to read xml file as shown below.
Hello,
I am using flash builder 4 and currently working on implementing AIR application.
I need to read xml file data.
Normal xml files are easy to read and i am much more aware of it.
But can any one have idea how to read XML file which is given below.
<node>
<key>ID</key>
<integer>1</integer>
<key>Name</key>
<string>Dhwani</string>
<key>Postno</key>
<integer>20</integer>
<key>deskname</key>
<string>flex</string>
<key>empid</key>
<integer>25</integer>
<key>projectname</key>
<string>abc</string>
</node>
Here i have xml file in form of key value pair. <key> node shows name of the key and after that <integer> or <string> node are the value for that specific key.
if i select node.key then it shows me all the keys. and from that i cant make out what is the value for key ID.
Is there any way to take first node and then second. i mean first i ll take value of key and store it into some arraycollection. and then value will be stored.
Any help is appreciated.. Looking for positive reply.
Thanks
DhwaniThere are different methods to access XML data which have pro's and cons. Let us know more about what you want to do and we can help you.
-
i have created custom classloader. now i want to unload classes those are loaded by custom classloader.
i know that the classes will be unloaded when its classloader is unloaded. so i want to know how to unload cusotm classloader.
In ClassLoader class there is one static inner class it has unload method . but we can not access that method from custom classloader.as a rule of thumb,
an object of may get marked for gc once no reachable references to it exist in the system.
a type (class) gets unloaded once:
1) no reachable references to it exist in the system;
2) there are no instance of that type left in the system or all the instances are unreachable (which is essencially the same as 1)
a classloader gets unloaded once there are no reachable references to it exist in the system.
reachable is the keyword here. Otherwise, if you had two classes A & B references each other, they would never be marked for gc. But as long as no other reference to either A or B exist, they both can be gc'ed. The same applies to classloaders (after all, they are just regular objects). Even though type T holds a reference to its classloader, if nothing refers to T, it's reference to the classloader doesn't count. -
Hello,
Can anyone help me to know how to parse xml in sap abap.
I have a xml file which i want to parse and store it in internal table.
<?xml version="1.0" encoding="UTF-8"?>##<data><name>menaka<name></data>
Regards,
Menaka.H.BHello,
For how to get the node name, you have to refer to this :
[https://wiki.sdn.sap.com/wiki/display/ABAP/Upload%20XML%20file%20to%20internal%20table|https://wiki.sdn.sap.com/wiki/display/ABAP/Upload%20XML%20file%20to%20internal%20table]
Check the code after:
WHEN if_ixml_node=>co_node_element
It tells you how to get the node name.
BR,
Suhas -
Hi All,
I have one requirement. I have one URL which gives me data in XML format. I need to read this file and store this data into my SAP tables.
Can anybody suggest how read this XML file using URL?
Thanks in advance,
P.Shridhar.Use a Server java proxy generated from your inbound message interface which would make a URLConnection to the specified URL after it gets triggered by BPM. A code snippet to achieve the same could be
URL url = null;
URLConnection conn = null;
BufferedReader in = null;
url = new URL("http://someurl.someserver.com");
conn = url.openConnection();
in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line = null;
StringBuffer xml = new StringBuffer();
while ((line = in.readLine()) != null){
xml.append(line);
-- amol -
How to stored data after clicking checkbox save in database table
TYPE-pools: slis.
tables:mkpf,mseg,mard,COWB_COMP.
TYPES: BEGIN OF tp_data,
mblnr LIKE mseg-mblnr,
matnr LIKE mseg-matnr,
werks LIKE mard-werks,
lgort LIKE mard-lgort,
lgpbe LIKE mard-lgpbe,
charg LIKE mseg-charg,
bwart LIKE mseg-bwart,
budat LIKE mkpf-budat,
menge LIKE mseg-menge,
meins LIKE mseg-meins,
kostl LIKE mseg-kostl,
aufnr LIKE mseg-aufnr,
rsnum LIKE mseg-rsnum,
endkz like COWB_COMP-endkz,
END OF tp_data,
tp_tbl_data TYPE STANDARD TABLE OF tp_data.
*data: t_data like ztable occurs 0 with header line.
Constants
Data objects (variable declarations and definitions)
Report data to be shown.
DATA: it_data TYPE STANDARD TABLE OF tp_data.
Heading of the report.
DATA: t_heading TYPE slis_t_listheader.
========================== Selection Screen ==========================
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS:smblnr FOR mseg-mblnr MODIF ID m1,
smatnr FOR mseg-matnr MODIF ID m2,
swerks FOR mard-werks MODIF ID m3,
slgort FOR mard-lgort MODIF ID m4,
slgpbe FOR mard-lgpbe MODIF ID m5,
scharg FOR mseg-charg MODIF ID m6,
sbwart FOR mseg-bwart MODIF ID m7,
skostl FOR mseg-kostl MODIF ID m8,
saufnr FOR mseg-aufnr MODIF ID m9,
srsnum FOR mseg-rsnum MODIF ID m10.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
PARAMETERS:pre RADIOBUTTON GROUP radi USER-COMMAND ucomm DEFAULT 'X',
pse RADIOBUTTON GROUP radi,
bps RADIOBUTTON GROUP radi.
SELECTION-SCREEN END OF BLOCK b2.
SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-003.
PARAMETER:layout TYPE i.
SELECTION-SCREEN END OF BLOCK b3.
=========================== Event Blocks =============================
AT selection-SCREEN.
start-OF-selection.
PERFORM get_data USING it_data.
END-OF-selection.
PERFORM build_alv USING it_data t_heading.
=========================== Subroutines ==============================
*& Form get_data
Gets the information to be shown in the report.
FORM get_data USING t_data TYPE tp_tbl_data.
SELECT msegmblnr msegmatnr mardwerks mardlgort mardlgpbe msegcharg msegbwart mkpfbudat
msegmenge msegmeins msegkostl msegaufnr mseg~rsnum
INTO CORRESPONDING FIELDS OF TABLE t_data
FROM mseg
JOIN mard ON mardmatnr EQ msegmatnr
JOIN mkpf ON msegmblnr EQ mkpfmblnr
WHERE mseg~matnr IN smatnr.
ENDFORM. " get_data
*& Form build_alv
Builds and display the ALV Grid.
FORM build_alv USING t_data TYPE tp_tbl_data
t_heading TYPE slis_t_listheader.
ALV required data objects.
DATA: w_title TYPE lvc_title,
w_comm TYPE slis_formname,
w_status TYPE slis_formname,
x_layout TYPE slis_layout_alv,
t_event TYPE slis_t_event,
t_fieldcat TYPE slis_t_fieldcat_alv,
t_sort TYPE slis_t_sortinfo_alv.
REFRESH t_fieldcat.
REFRESH t_event.
REFRESH t_sort.
CLEAR x_layout.
CLEAR w_title.
Field Catalog
PERFORM set_fieldcat2 USING:
1 'MBLNR' 'MBLNR' 'MSEG' space space space space space space space space space space space space t_fieldcat ,
2 'MATNR' 'MATNR' 'MSEG' space space space space space space space space space space space space t_fieldcat ,
3 'WERKS' 'WERKS' 'MARD' space space space space space space space space space space space space t_fieldcat,
4 'LGORT' 'LGORT' 'MARD' space space space space space space space space space space space space t_fieldcat ,
5 'LGPBE' 'LGPBE' 'MARD' space space space space space space space space space space space space t_fieldcat ,
6 'CHARG' 'CHARG' 'MSEG' space space space space space space space space space space space space t_fieldcat ,
7 'BWART' 'BWART' 'MSEG' space space space space space space space space space space space space t_fieldcat,
8 'BUDAT' 'BUDAT' 'MKPF' space space space space space space space space space space space space t_fieldcat,
9 'MENGE' 'MENGE' 'MSEG' space space space space space space space space space space space space t_fieldcat,
10 'MEINS' 'MEINS' 'MSEG' space space space space space space space space space space space space t_fieldcat,
11 'KOSTL' 'KOSTL' 'MSEG' space space space space space space space space space space space space t_fieldcat,
12 'AUFNR' 'AUFNR' 'MSEG' space space space space space space space space space space space space t_fieldcat,
13 'RSNUM' 'RSNUM' 'MSEG' space space space space space space space space space space space space t_fieldcat,
14 'ENDKZ' 'ENDKZ' 'COWB_COMP' space space 'select' 'Select this row' 'Sel' 'Select this row' space space space 'X' 'X' space t_fieldcat.
Layout
x_layout-zebra = 'X'.
Top of page heading
PERFORM set_top_page_heading USING t_heading t_event.
Events
PERFORM set_events USING t_event.
GUI Status
w_status = ''.
User commands
w_comm = 'USER_COMMAND'.
Order
Example
PERFORM set_order USING '<field>' 'IT_DATA' 'X' space space t_sort.
PERFORM set_order USING 'MBLNR' 'IT_DATA' 'X' space 'X' t_sort.
PERFORM set_order USING 'EBELN' 'IT_DATA' 'X' space 'X' t_sort.
PERFORM set_order USING 'EBELP' 'IT_DATA' 'X' space space t_sort.
Displays the ALV grid
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
it_fieldcat = t_fieldcat
is_layout = x_layout
it_sort = t_sort
i_callback_pf_status_set = w_status
i_callback_user_command = w_comm
i_save = 'X'
it_events = t_event
i_grid_title = w_title
TABLES
t_outtab = t_data
EXCEPTIONS
program_error = 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. " build_alv.
*& Form set_top_page_heading
Creates the report headings.
FORM set_top_page_heading USING t_heading TYPE slis_t_listheader
t_events TYPE slis_t_event.
DATA: x_heading TYPE slis_listheader,
x_event TYPE LINE OF slis_t_event.
Report title
CLEAR t_heading[].
CLEAR x_heading.
x_heading-typ = 'H'.
x_heading-info = 'Reporte Prueba'(001).
APPEND x_heading TO t_heading.
Program name
CLEAR x_heading.
x_heading-typ = 'S'.
x_heading-KEY = 'Program: '.
x_heading-info = sy-repid.
APPEND x_heading TO t_heading.
User who is running the report
CLEAR x_heading.
x_heading-typ = 'S'.
x_heading-KEY = 'User: '.
x_heading-info = sy-uname.
APPEND x_heading TO t_heading.
Date of execution
CLEAR x_heading.
x_heading-typ = 'S'.
x_heading-KEY = 'Date: '.
WRITE sy-datum TO x_heading-info.
APPEND x_heading TO t_heading.
Time of execution
CLEAR x_heading.
x_heading-typ = 'S'.
x_heading-KEY = 'Time: '.
WRITE sy-uzeit TO x_heading-info.
APPEND x_heading TO t_heading.
Top of page event
x_event-name = slis_ev_top_of_page.
x_event-FORM = 'TOP_OF_PAGE'.
APPEND x_event TO t_events.
ENDFORM.
*& Form set_events
Sets the events for ALV.
The TOP_OF_PAGE event is alredy being registered in
the set_top_page_heading subroutine.
FORM set_events USING t_events TYPE slis_t_event.
DATA: x_event TYPE LINE OF slis_t_event.
Example
clear x_event.
x_event-name = .
x_event-form = .
append x_event to t_event.
ENDFORM.
*& Form set_order
Adds an entry to the order table.
FORM set_order USING p_fieldname p_tabname p_up p_down p_subtot
t_sort TYPE slis_t_sortinfo_alv.
DATA: x_sort TYPE slis_sortinfo_alv.
CLEAR x_sort.
x_sort-fieldname = p_fieldname.
x_sort-tabname = p_tabname.
x_sort-UP = p_up.
x_sort-down = p_down.
x_sort-subtot = p_subtot.
APPEND x_sort TO t_sort.
ENDFORM. "set_order
*& Form set_fieldcat2
Adds an entry to the field catalog.
FORM set_fieldcat2 USING p_colpos p_fieldname p_ref_fieldname p_ref_tabname
p_outputlen p_noout
p_seltext_m p_seltext_l p_seltext_s p_reptext_ddic p_ddictxt
p_hotspot p_showasicon p_checkbox p_edit
p_dosum
t_fieldcat TYPE slis_t_fieldcat_alv.
DATA: wa_fieldcat TYPE slis_fieldcat_alv.
CLEAR wa_fieldcat.
General settings
wa_fieldcat-fieldname = p_fieldname.
wa_fieldcat-col_pos = p_colpos.
wa_fieldcat-no_out = p_noout.
wa_fieldcat-HOTSPOT = p_hotspot.
wa_fieldcat-CHECKBOX = p_checkbox.
wa_fieldcat-ICON = p_showasicon.
wa_fieldcat-do_sum = p_dosum.
Set reference fieldname, tablenam and rollname.
If p_ref_tabname is not given, the ref_fieldname given is a data element.
If p_ref_tabname is given, the ref_fieldname given is a field of a table. In case ref_fieldname is not given, it is copied from the fieldname.
IF p_ref_tabname IS INITIAL.
wa_fieldcat-rollname = p_ref_fieldname.
ELSE.
wa_fieldcat-ref_tabname = p_ref_tabname.
IF p_ref_fieldname EQ space.
wa_fieldcat-ref_fieldname = wa_fieldcat-fieldname.
ELSE.
wa_fieldcat-ref_fieldname = p_ref_fieldname.
ENDIF.
ENDIF.
Set output length.
IF NOT p_outputlen IS INITIAL.
wa_fieldcat-outputlen = p_outputlen.
ENDIF.
Set text headers.
IF NOT p_seltext_m IS INITIAL.
wa_fieldcat-seltext_m = p_seltext_m.
ENDIF.
IF NOT p_seltext_l IS INITIAL.
wa_fieldcat-seltext_l = p_seltext_l.
ENDIF.
IF NOT p_seltext_s IS INITIAL.
wa_fieldcat-seltext_s = p_seltext_s.
ENDIF.
IF NOT p_reptext_ddic IS INITIAL.
wa_fieldcat-reptext_ddic = p_reptext_ddic.
ENDIF.
IF NOT p_ddictxt IS INITIAL.
wa_fieldcat-ddictxt = p_ddictxt.
ENDIF.
Set as editable or not.
IF p_edit IS NOT INITIAL.
wa_fieldcat-INPUT = 'X'.
wa_fieldcat-EDIT = 'X'.
ENDIF.
APPEND wa_fieldcat TO t_fieldcat.
ENDFORM. "set_fieldcat2
=========================== Subroutines called by ALV ================
*& Form top_of_page
Called on top_of_page ALV event.
Prints the heading.
FORM top_of_page.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
i_logo = 'XXXXX'
it_list_commentary = t_heading.
ENDFORM. " alv_top_of_page
*& Form user_command
Called on user_command ALV event.
Executes custom commands.
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
ENDFORM. "user_command
this is my code, how to store data after clicking checkbox in databasetable,
how to write that cide.
plz send me code.hi!,
use MODIFY to update data into the data base table.
regards
anjali -
How to refresh XML file from my client machine
Hai All
I have temp.XML and temp.XSL template in our server machine.
when i give a print from client machine first time it gives the record,and next time it did not get refresh.Always it shows the previous records in the browser.But when i go into the server machine and click on temp.xml,it shows the current record(correct records)
How to refresh XML file from my client machine?
Regards
DhinaYou never delete a Time Machine backup by dragging it to the Trash. You are supposed to use the TM application to manage the backups. What you will need to do now is to simply erase the drive using Disk Utility.
-
Any ideas on how to fix ipad after the new iOS 7 update? My battery will not charge, my ipad is hot to the touch, the iTunes Store won't open, and my messages on Facebook aren't showing up when I chat and pintrest won't pin to my boards.
If you have all your music on the cmputer then i would connect up my phone uncheck the Sync Music option and apply.
This should take all the music off your phone .Then you can resync the music back on to it.
If this doesn't work maybe a restore to factory settings and start from scratch is the way to go -
How to send XML using UTL_HTTP
I am trying to workout how to send XML data to a webserver using UTL_HTTP but am not getting any reply
I need to submit the following XML document to a server "http://api.fastsms.co.uk/api/xmlapi.php" Their instructions are "The XML Document should be posted unencoded, with a UTF-8 character set as parameter 'xml'"
If I submit the following XML on their test form
<?xml version="1.0"?>
<apirequest version="1">
<user>
<username>**USER**</username>
<password>**PASSWORD**</password>
</user>
<application>
<name>Example Application</name>
<version>1.0</version>
</application>
<inboundcheck lastid="10711399"/>
</apirequest>
I get an XML response back with the messages in my inbox.
This is the code I am trying to use to accomplish the same from PL/SQL : I know a response is coming back as there is header information - just no content. What am I doing wrong ?
l_xml VARCHAR2(5000);
req utl_http.req;
resp utl_http.resp;
header_name VARCHAR2(256); -- Response header name
header_value VARCHAR2(1024); -- Response header value
response_text VARCHAR2(4000); -- Response body
l_url VARCHAR2(100);
BEGIN
l_xml := 'xml=<?xml version="1.0"?>';
l_xml := '<apirequest version="1">';
l_xml := '<user>';
l_xml := '<username>**USER**</username>';
l_xml := '<password>**PASSWORD**</password>';
l_xml := '</user>';
l_xml := '<application>';
l_xml := '<name>Example Application</name>';
l_xml := '<version>1.0</version>';
l_xml := '</application>';
l_xml := '<inboundcheck lastid="10711399"/>';
l_xml := '</apirequest>';
-- Open HTTP connection
l_url := 'http://api.fastsms.co.uk/api/xmlapi.php';
req := utl_http.begin_request(l_url,'POST',utl_http.HTTP_VERSION_1_1);
-- Set headers for type and length
utl_http.set_header(req,'Content-Type','application/x-www-form-urlencoded');
utl_http.set_header(req,'Content-Length',to_char(length(l_xml)));
-- Write parameter
utl_http.write_text(req,l_xml);
-- Read response file
resp := utl_http.get_response(req);
-- Print out the response headers
FOR i IN 1 .. utl_http.get_header_count(resp) LOOP
utl_http.get_header(resp,i,header_name,header_value);
logging_pkg.info(header_name || ': ' || header_value);
END LOOP;
-- Print out the response body
BEGIN
LOOP
utl_http.read_text(resp,response_text);
logging_pkg.info(response_text);
END LOOP;
EXCEPTION
WHEN utl_http.end_of_body THEN
logging_pkg.info('End of body');
END;
-- close http connection
utl_http.end_response(resp);
EXCEPTION
WHEN utl_http.end_of_body THEN
utl_http.end_response(resp);
END;
Cheers,
BrentHi Billy
Yikes - how embarassing ! Thanks for pointing out my beginners mistake there. I've fixed my code - and also implemented the substitutions of parameters like you suggested - I like that approach.
Unfortunately the end result is no better - the line
utl_http.read_text(resp,response_text);
Still returns nothing back
The headers that are coming back are
Date: Thu, 04 Jul 2013 08:31:56 GMT
Server: Apache/2.2.16 (Ubuntu)
X-Powered-By: PHP/5.3.3-1ubuntu9.3
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Vary: Accept-Encoding
Content-Length: 0
Content-Type: text/html; charset=UTF-8
Connection: close
I guess I will need to try chasing it with the fastsms vendor so see if they can check my incoming request and see if there are any glaring problems. I know the xml is correct as I am now logging the xml string just before I send it and when I take that string and put it in their test form it works perfectly - something else in the puzzle is missing. I've had no experience using utl_http before - perhaps it's no possible to read the xml repsonse using this ?
Anyway, thanks for your help Billy.
ps - How do you paste your code into your message to get that formatting ?
Cheers,
Brent -
TS4036 How do I restore after 5.1 os upgrade
I upgraded my software and lost al my apps
fdonnelly wrote:
How do I restore after I have already setup a new device? ...
...to restore from an iCloud backup, erase your device (by going to Settings > General > Reset > Erase All Content and Settings). When prompted to set up as new or to restore from previous backup, select Restore from iCloud Backup. Enter your AppleID and password when prompted.
See How to Restore from a Backup Here...
http://support.apple.com/kb/ht1766
Maybe you are looking for
-
See above question for deleting previous owners acct. info, credit card info. As well as I can't get my iPad to update.
-
Mail program converts my csv attachment into a zip file that i am unable to open
when i receive email thecsv attachment is being converted in zip files that i am unable to open does anyone know why this is is happening is this a apple iisue or something to do with my exchange server?
-
HELP WITH SLIDESHOW!! WEDDING SATURDAY!!
I'm making a slideshow for a wedding this Saturday. As I was previewing the slideshow, I noticed that the pictures weren't being shown in their entirety. Is there an option that I can select that will allow the photos to be shown as a whole? I've tri
-
STO (ME27) with account assignment coding block
Hi Experts, Need your help here to find out why. My STO screen (ME27) always pops-up for Account Assignment screen and always populating Commitment Item automatically. I want to get rid of that pop-up dialog screen, so user doesn't need to enter anyt
-
MacBook Pro 2011 get hot and noise all the time and slowly ?
hi. why MacBook Pro get too hot and make a noise all the time i have Yosemite ,mac late 2011 and became very slow?