Modifying a Signed Document via its Metadata
This is a good one for all of you out there. We all know that if you make a modification to any Office document that has been digitally signed, you end up removing all signatures in it because the file has been altered. However, we have a scenario, where
content in our Word documents are imported out of a SharePoint list. For exemple, we have a form that will initiate a new Staffing request with our HR department. The information related to the linguistic profile of the position to staff is extracted out of
another SharePoint list.
If someone was to sign the document, and then go and alter the linguistic profile value in the associated list, the new value would show up in the signed document, preserving the digital signature. This gives the impression to our end-users that people are
able to alter Office Documents that have been signed, and is making them loose faith in the platform. I am looking for advise or recommendations on how to best approach this issue to ensure people cannot altered external data that is being used by signed documents,
or for a way to have the digital signature removed if the data is ever modified.
Nikolas Charlebois-Laprade Microsoft Certified Professional & Software Engineer http://nikcharlebois.com
Is there an Action Wizard to automate this? I have partners that chance the file name, what I would like to have happen is the orginal file name becomes the title, so if the file name gets changed the title remains the same.
Similar Messages
-
Cannot sign documents with Adobe Reader 10.1.3 - 10.1.10, Can sign document with 10.1.2 and 11.0.07
In my environment, we have 10.1.2 that's currently packaged. Our CIO was able to sign documents via signature with no problem. Later he got updated to 10.1.9, no longer can sign.
During testing I was able to confirm that 10.1.2 signed without problems, but anything that, it goes kaput, the Sign and options are not listed.
Latest Adobe Reader can sign... any ideas?I'm having a similar problem. What I'm trying to do is print a Microsoft Word 2010 document with paper size A4 to Adobe pdf document paper size A4. I select "A4" for paper size in word and then print using Adobe print standard settings. What I get is an Adobe document in 8.5 x 11. This is an issue because these are patent documents for electronic filing in WIPO and they must be in A4 size.
If I select other sizes in Word, such as A3, Tabloid, and Legal, the Adobe file is in the same paper size.
If I print a Powerpoint document in A4 to Adobe, the Adobe file page size is A4.
If I print an Adobe file in 8.5 x11 to Adobe A4, the second Adobe file is in A4.
Any help? -
CRM single sign on (SSO) to R/3 system via ITS 6.20
Hi all
I try to configue CRM2007 single sign on (SSO) to R/3 system via ITS 6.20.
my configuraion process
1. on CRM2007
-profile : login/accept_sso2_ticket = 1
login/create_sso2_ticket = 2
- t-code : strustsso2 --> export system PSE
2. on R/3 system
- profile : login/accept_sso2_ticket = 1
login/create_sso2_ticket = 0
- t-code : strust --> import certification --> add certification list --> save
- t-code : oss2 --> execute with crm rfcdestination --> all green.
3. ITS
~appserver r/3.domain
~client
~clientcert 1
~cookies 1
~exiturl
~hostsecure itshost.domain
~hostunsecure itshost.domain
~language
~login
~logingroup
~messageserver
~multiinstanceservices 1
~password
~portsecure 443
~portunsecure 80
~routestring
~runtimemode pm
~systemname R/3 SID
~systemnumber R/3 system no
~theme 99
~timeout 600
~urlimage /sap/its/graphics
~urlmime /sap/its/mimes
~usertimeout 240
~xgateway sapdiag
~xgateways sapdiag,sapxgwfc,sapxginet,sapextauth
~mysapcomgetsso2cookie
~mysapcomusesso2cookie 1
~mysapcomssonoits 1
for SSO check, execute web ui and then log on web ui
I go to the Interation center and then go to the ERP information.
but ITS log on screen appear.
crm user and r/3 user is same.
how can I do ??You use Server Port 3600, message server.
It means, while creating a system you used wrong template and picked "SAP system using dedicated application server".
You should use "SAP system with load balancing", since message server is doing load balancing.
Once you selected correct template you will see "Message Server" instead of App and GW servers.
Make sure to fill in
Group - Logon group to use. If not defined in R3, use SPACE
Message Server - ansapdev01
SAP Client = 150
SAP System ID <SID> = DEV
Server Port 3600
System Type = SAP R/3
It should work.
Regards,
Slava -
What are the steps to sign a document via Preview with a mac
what are the steps to sign a document via Preview with a mac?
Preview>Preferences>Signatures.
-
Modifying Signed Documents, help with permissions
Hello,
I'm setting acrobat, and i need help with the following.
For many reasons we want to be able to sign a document, but also make changes to it later on
but without the need of re-signing the document, i.e. when a drawing becomes obsolete we need to put a watermark on it.
How would i do this, as at the moment when we try to watermark a signed document, it says i don't have the correct permissions
Cheers
StuartI understand what you saying, but i know another big reason, that i know for a fact not just us would face, would be due to the following.
If we had a drawing from 2001, in which Bob was the author. Bob would have signed the document.
Now in 2009 and bob is not here, and we need to update the document, i.e. we need to add some holes, but the original part has stayed the same in respects to form, fit and function. A way we used to do this on the earlier acrobats, would be to use the replace pages feature which would keep the signatures and update the drawing with the relavant change details on it. Its not just as easy as putting a new name to the drawing, due to liability reasons. I.e. if the part was to fail, you need to know of the person who designed the part.
Is there not a master certificate or password that would give you these permissions? -
Hello gurus,
I use a ssf complaint dll to sign files using a smart card. Everything works fine in the sap Gui.
Now my customer ask me to use the same application via ITS. He wants to access the sapGui via web and sign the document using a smartcard.
As far as I know ssf signature use a RFC destination to talk with the local dll library.
Does somebody knows if this scenario (the one via ITS) may work?
Thanks
GianniHi Gianni,
please create a SAP customer message for this issue and ask SAP primary support to forward the message to ITS development. Describe what your customer wants to do and why they require this functionality. We will than check what can be done.
Best regards,
Klaus -
How to find a text in the Frame maker document via script?
How to find a particular text in the Frame maker document via script?
johnsyns wrote:
Why it doesn't work for the other days? When i tried to change the days other than wednesday. it return nothing.
Reason why Justin's code does not work for other days is date format mask DAY returns day blank padded to 9 characters which is the longest day name which, yes you guessed right, is WEDNESDAY. You either need to blank pad or use format modifier FM:
SQL> select *
2 from (SELECT TO_DATE(SYSDATE+ROWNUM, 'DD-MON-YY') dt
3 FROM DUAL CONNECT BY ROWNUM <= 27)
4 WHERE TO_CHAR(dt,'DAY') = 'TUESDAY'
5 /
no rows selected
SQL> select *
2 from (SELECT TO_DATE(SYSDATE+ROWNUM, 'DD-MON-YY') dt
3 FROM DUAL CONNECT BY ROWNUM <= 27)
4 WHERE TO_CHAR(dt,'DAY') = 'TUESDAY '
5 /
DT
07-APR-09
14-APR-09
21-APR-09
28-APR-09
SQL> select *
2 from (SELECT TO_DATE(SYSDATE+ROWNUM, 'DD-MON-YY') dt
3 FROM DUAL CONNECT BY ROWNUM <= 27)
4 WHERE TO_CHAR(dt,'FMDAY') = 'TUESDAY'
5 /
DT
07-APR-09
14-APR-09
21-APR-09
28-APR-09
SQL> SY. -
Hello,
I am getting the following error in sending IDOC to SAP via WCF-SAP adapter in BizTalk Server 2009. I have the SOAP header in the adapter mentioned below. Also, wondering what is the convension for Action URL? Is it always "http://Microsoft.LobServices.Sap/2007/03/Rfc/"
+ Operation name mentioned in the Orchestration? I would appreciate if anyone could help me resolve this error.
The adapter failed to transmit message going to send port "SendReceive_PO_IDOC_TO_SAP" with URL "sap://CLIENT=111;LANG=EN;@a/123.456.789.101/00?GWHOST=123.456.789.101&GWSERV=sapgw00&ListenerProgramId=ABCDEF111&RfcSdkTrace=False&AbapDebug=False".
It will be retransmitted after the retry interval specified for this Send Port. Details:"Microsoft.ServiceModel.Channels.Common.MetadataException: RFC Send could not be resolved against SAP system because its metadata could not be obtained. ---> Microsoft.Adapters.SAP.RFCException:
Details: ErrorCode=RFC_EXCEPTION. ErrorGroup=RFC_ERROR_APPLICATION_EXCEPTION. SapErrorMessage=EXCEPTION FU_NOT_FOUND RAISED. AdapterErrorMessage=An error occurred while determining the function interface of the RFC Send.
at Microsoft.Adapters.SAP.RFCException.HelperThrow(Int32 retCode, String additionalErrorMessage)
at Microsoft.Adapters.SAP.RfcClientConnection.GetRfcFunctionInterface(String rfcName)
at Microsoft.Adapters.SAP.InternalRfcMetadata..ctor(String originalRfcName, SAPConnection sapConnection)
at Microsoft.Adapters.SAP.SAPMetadataContract.ResolveOperationMetadata(String operationId, TimeSpan timeout, TypeMetadataCollection& extraTypeMetadataResolved)
at Microsoft.ServiceModel.Channels.Common.Design.MetadataCache.GetOperationMetadata(String uniqueId, Guid clientId, TimeSpan timeout)
at Microsoft.ServiceModel.Channels.Common.MetadataLookup.GetOperationDefinition(String operationId, TimeSpan timeout)
at Microsoft.Adapters.SAP.SapFunctionMetadata.ResolveOperationMetadataUsingSdk(String absoluteName, String displayName, String funcName, String operationNamespace, SAPConnection sapConnection, Boolean isTrfc, MetadataLookup metadataLookup, TimeoutHelper
timeoutHelper)
--- End of inner exception stack trace ---
Server stack trace:
at System.ServiceModel.AsyncResult.End[TAsyncResult](IAsyncResult result)
at System.ServiceModel.Channels.ServiceChannel.SendAsyncResult.End(SendAsyncResult result)
at System.ServiceModel.Channels.ServiceChannel.EndCall(String action, Object[] outs, IAsyncResult result)
at System.ServiceModel.Channels.ServiceChannel.EndRequest(IAsyncResult result)
Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at System.ServiceModel.Channels.IRequestChannel.EndRequest(IAsyncResult result)
at Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfClient`2.RequestCallback(IAsyncResult result)".
For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.
SOAP Header:
<BtsActionMapping xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Operation Name="Send" Action="http://Microsoft.LobServices.Sap/2007/03/Rfc/Send" />
</BtsActionMapping>
Thanks,
TarunHello Morten,
The Send is actually just the name of the operation in Orchestration and it does not exist in SAP. Hence, do I really need to have the SOAP header in WCF-SAP adapter or can I send the IDOC without any SOAP header info? When I try to send without
SOAP header I get the following error. Can you help me resolve this?
The adapter failed to transmit message going to send port "SendReceive_PO_IDOC_TO_SAP" with URL "sap://CLIENT=111;LANG=EN;@a/123.456.789.101/00?GWHOST=123.456.789.101&GWSERV=sapgw00&ListenerProgramId=ABCDEF111&RfcSdkTrace=False&AbapDebug=False". It
will be retransmitted after the retry interval specified for this Send Port. Details:"System.ArgumentNullException: Value cannot be null.
Parameter name: key
at System.ThrowHelper.ThrowArgumentNullException(ExceptionArgument argument)
at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
at Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfClient`2.CreateChannelFactory[TChannel](IBaseMessage bizTalkMessage)
at Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfClient`2.InitializeValues(IBaseMessage message)
at Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfClient`2..ctor(IBaseMessage message, WcfTransmitter`2 transmitter)
at Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfTransmitter`2.GetClientFromCache(String spid, IBaseMessage message)
at Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfAsyncBatch`2.BatchWorker(List`1 messages)".
For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.
Thanks,
Tarun -
Hey,
i want to open a Word Document "write protected" via ITS, until now I used the FM ALEWEB_DOWNLOAD". The combination of GUI_DOWNLOAD and WS_EXECUTE works, but the document is opened in the "normal" mode and before the word application opens I get a popup requester window.
I would like to reach the Word application on the client by OLE2 but i don't know how this works through the ITS?
Has anybody experience with this problem?
Thank you!
Greets
ChristofHey,
unfortunetaly I get an exception. But I'm not sure if my question was clear enough.
I want to open an application on a client through the web browser.
I use generated SAP WEB GUI screens which look like the SAP GUI. A double click on the result list in the web browser should open an application (word) on the client and display a document.
This works so far with the function module 'ALEWEB_DOWNLOAD' but causes some other problems, thats why I'm trying to find an alternative.
I think that using the class 'cl_gui_frontend_services' the server looks for the application on the ITS and not on the client. But I'm not sure at all.
Thanks a lot!
Christof -
Update 9.1.2 breaks digital signing documents in Adobe 9 Pro on Windows XP
I am able to digitally sign documents using an Aladdin eToken Pro 64k with a fresh copy of Adobe 9 Pro for Windows. However when I update to version 9.1.2 digital signing fails with an "error encountered while BER decoding". Signing still works on Vista and Adobe 9.1.2 Pro. I've checked to make sure none of the settings relating to digital signing changed during the update and none have. Anyone have any ideas on how to correct the problem?
Hi Nick,
First up, there was a small error in my previous post. I said the version of Acrobat (and whenever I say Acrobat I really mean both Acrobat and Reader, but I'm too lazy to type both) that was modified to fix the bug in SHA-1 fallback was 9.1.3, but I really meant 9.3. Sorry about that.
I saw your post from yesterday (http://forums.adobe.com/thread/563601) where you broached the BER decoding error, but in the post above you said signature creation isn't failing any more, so hopefully some update has fixed the problem.
Here's a little bit about the BER Decoding error. During the signing process Acrobat writes the entire file to disk (which is why you always get the Save As dialog as part of the signing process) in the signed state with everything but the actual signature. However, it does leave a hole in the file where the BER encoded cryptographic data will reside once it's be computed and formatted. One thing that is created before the actual signature is the signature appearance. The signature appearance in the form field isn't really the signature proper, but just a graphic representation of the actual signature. The reason that the signature appearance is written to disk before the signature is created is because it too is part of the signed data and must exist before the actual signature is created.
In a perfect world, after the file is written to disk, the cryptographic signature is created and written into the hole in the PDF file, and the signing process completes without any problem. However, if we get to the point that the file has been written out, but during the actual signature creation the process fails, that hole I mentioned isn't filled in. It's not really a hole per se, but a block of zeros that act as a placeholder for the BER encoded data. Because there was some sort of failure and Acrobat didn't get the signed data back from the hardware device what you end up with is a PDF file with a signature appearance, but no real signature in the file. When you click on the signature field Acrobat tries to validate the actual signature, it finds the block of zeros where the signed data was supposed to be, it tries to decode the zeros and gets (as you might well imagine) nothing back and displays the BER Decoding error.
Let leaves us with why didn't Acrobat get the signed data back. When using hardware devices, such as tokens or smart cards, the actual cryptographic signing (the encryption of of the digest with the users private key) takes place on the device. Acrobat (nor any other application) doesn't have access to the private key, which is what makes hardware devices more secure. It's up to the device to sign the data and send it back. If there is any kind of breakdown in that communication channel (which I mentioned in my previous post) the signature creation doesn't reach fruition and you're left with an unsigned file that looks like it was signed because there is a signature appearance.
This is a case where we are providing technically correct, and utterly useless information. It's true that we can't decode a bunch of zeros, but what we should be telling the user is there is no signature (it's kind of like the Matrix where there is no spoon ).
I hope this helps explain what you're seeing. If the the signing process breaks down again please make sure you are using the latest version of Acrobat/Reader and the token software is up-to-date. If everything is current and the problem returns please let me know.
Steve -
Credit/Debit Memo Request with reference to Billing document via IDoc
Hello Experts,
It seems SAP doesn't support Credit/Debit Memo Request with reference to Billing document via IDoc. Via IDoc, we can create sales document only with reference to contract or quotation but not with reference to billing/invoice document.
Wanted to check if anybody came across such requirement and what would be the best way to acheive (Other than custom program using BAPI).
Additional Information: Its ECC 6.0 Environment with AFS 6.03
Appreciate your help.
Thanks,
Shekhar.Please Help... it is Urgent... Thank you
-
Hello! I would like to know the procedure to turn a word document into a PDF document via Adobe Reader. Do I have to pay for it or just sign up? Thank you in advance.
"...the procedure to turn a word document into a PDF document via Adobe Reader."
Not possible.
No version of Adobe Reader can:
--| create PDF
--| manipulate PDF page content
--| export PDF page content
Adobe Reader XI does provide a "connection" to various Adobe hosted online subscription services (that are under "acrobat.com").
There is a subscription services can create PDF from supported file formats that are uploaded to the service.
This subscription service is "PDF Pack".
With an active (paid up) subscription to a service one can make use of the service.
Be well... -
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 -
Why is the validity of my digitally signed document displayed as unknown?
Why is the validity of my digitally signed document displayed as unknown?
Adobe X version 10 1.4
What exactly do I have to do under Preferences-Windows Integration?Hi amyemia,
The signer's identity is unknown because it has not been included in the list of trusted identities and none or its parent certificates are trusted identities" indicates your recipients needs to add something to their copy of Acrobat/Reader. What the recipient of the document is missing is a certificate and only you can provide him with a copy of the certificate you created to sign the PDF. After you send him or make available a copy of the certificate, then he will need to import that certificate into his copy of Acrobat
Please refer : http://helpx.adobe.com/acrobat/kb/validity-digital-signature-displayed-unknown.html
If you want your PDF signature to be valid on your / co-worker's computer, you need to supply them with your Public certificate. To do this you need to export it out as an .fdf file, if in Acrobat X, choose Edit – Protection – Security Settings, select your ID that you used to sign the PDF with and choose Export, you can then either save it to disk, or directly email your certificate, get your co-worker to double click it in Adobe Reader and follow the prompt, when you see Set Contact Trust, select it and check Use Certificate as Trusted Root. Then click OK. Now open the PDF and it should now be valid. -
Missing namespace on a signed document
Hi,
I'm signing a document which has this original format:
<LceEnvioLibros xmlns="http://www.sii.cl/SiiLce" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sii.cl/SiiLce LceEnvioLibros_v10.xsd" version="1.0">
<DocumentoEnvioLibros ID="ENVIO_DIARIO">
</DocumentoEnvioLibros>
<LCE>
<LceDiario xmlns="http://www.sii.cl/SiiLce" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sii.cl/SiiLce LceDiario_v10.xsd" version="1.0">
<LceDiarioRes xmlns="http://www.sii.cl/SiiLce" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sii.cl/SiiLce LceDiarioRes_v10.xsd" version="1.0">
<DocumentoDiarioRes ID="DIARIO_RES_2006_01">
</DocumentoDiarioRes>
</LceDiarioRe>
</LceDiario>
</LCE>
</LceEnvioLibros>When I sign it the namespaces (xmlns, xmlns:ds and xml:xsi ) on the LceDiario and LceDiarioRes elements disappear. I know they are somewhat redundant but is there something I can do about that?
Cheers,
MauricioWhile I sympathize Mauricio, I still do not agree that one should give in so easily to this kind of stupidity. It is the tyranny of petty bureaucrats that makes the world such a messy place.
Point them to the W3C spec on Canonicalization (http://www.w3.org/TR/2008/REC-xml-c14n11-20080502/#SuperfluousNSDecl) which unequivocally states that "*Superfluous namespace declarations are removed from each element*". So what do they gain by putting in redundant namespace declarations when every conformant parser/canonicalizer is going to strip it out anyway? Technology is meant to make our lives easier and more productive - not the other way around.
That said, you can put back the redundant namespace declarations into the elements (through an XSL Transformation) AFTER the signature is affixed to the document, send it to them and the signature will still be verified correctly. This "magic" works because from XMLSignature's point-of-view, you haven't modified the document at all - the modified instance is identical to the canonical version of the signed document and thus, the signature continues to validate.
So, the end result is, in order to satisfy some bureaucrat's desire for seeing XML in a specific way, lots of time, money, electricity and disk-space is going to be wasted for something that doesn't add any value (you should let your business executives know that).
Arshad Noor
StrongAuth, Inc.
Maybe you are looking for
-
I'm trying to export a file to pdf from indesign that has video with type placed over the top. After exporting and viewing in acrobat, I can view the video but not the type. Can anyone tell me what I'm might be doing wrong?
-
How do I merge 6 older saved json files with bookmarks in FF 23.0.1? Thanks
I have 6 old json files from discarded computers to merge with current bookmarks in ff 23.0.1. Looking for a utility that will combine all into one bookmark folder. Thanks in advance. Application Basics Name Firefox Version 23.0.1 User Agent Mozilla/
-
I am chaning carrier and have changed my sim but I cannot activate my phone as the apple id the phone was originally registered with no longer exists (or the email). I had registered my iphone to a new apple id, but this is not activating the phone.
-
Converting Signature data into PKCS#7 format
Hi All, Is there any java api available to convert signature bytes in to PKCS#7 format. Here is the scenario. downloaded a trail digital id(abc.pfx) file from verisign site. then retrieved the private key, certificate and public key information from
-
Best use of static constants in project level
Generally , we use magic numbers in loops & conditional statements in our code. But we have a better option of using final static variables(constants) instead of magic numbers. But the problem is if we need to use these constants in whole project the