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

    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
    Stuart

    I 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?

  • Digital signature via ITS

    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
    Gianni

    Hi 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.

  • RFC Send could not be resolved against SAP system because its metadata could not be obtained...EXCEPTION FU_NOT_FOUND RAISED

    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,
    Tarun

    Hello 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

  • Open Word Document from ITS

    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
    Christof

    Hey,
    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.

    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_ye

    Hi 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,
    Mauricio

    While 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

  • Video in indesign to PDF

    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 cannot reactivate my phone after changing the SIM as my apple ID is not recognised on the phone?

    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