Running an Interactive External Process

I am trying to run an Interactive external process.
This process is an exe program.
When I run this program it prompts for a password.
Here the reader.read() is never gets to a ready state.
Following is a snippet of the program
public class StreamGobler extends Thread{
private InputStream is;
private OutputStream os;
private String pwd;
private int waitState = 1;
public StreamGobler(InputStream _is, OutputStream _os, String _pwd)   {
        this.is = _is;
        this.os = _os;
        this.pwd = _pwd;
     public void run() {
        BufferedReader reader = null;
        BufferedWriter writer = null;
        try {
            reader = new BufferedReader(new InputStreamReader(is));
            writer = new BufferedWriter(new OutputStreamWriter(os));
            String msg = "";
            int c=0;
            //This is where my program get blocked it never enters the while block and eventually timesout               
            while ((c = reader.read()) != -1) {            
     msg += (char) c;
     if (waitState == 1) {                 
        if(msg != null && msg.toLowerCase().indexOf("password") != -1){
     writer.write(pwd+ "\n");                    writer.flush();                         waitState++;                    msg = "";
                   }else{
       buffer.append((char) c);              
        catch (Exception ee) {}       
        finally {
            try {
     if (reader != null)
         reader.close();
     if (writer != null)
         writer.close();
           } catch (Exception ee) {}
Message was edited by:
        ff1012                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

You need to check with the vendor of this unspecified application to see if they have an api for remote control. Perhaps they have an ActiveX interface? If not, I've had very good luck with an application called AutoIT - https://www.autoitscript.com/site/autoit/
There are LabVIEW examples on the forum.

Similar Messages

  • Interacting with external processes

    What are the options in the latest AIR regarding interacting with external processes running on the same machine?
    Thanks

    You will need to user AIR 2.0.
    Here is a tutorial:
    http://www.adobe.com/devnet/air/ajax/quickstart/interacting_with_native_process_print.html

  • Running external process continously.. !!.. help plz

    Hello frnds,
    I have to run an external process.. continously.. ??
    am not able to figure out.. what is best for me..
    Should I run it.. it in a while loop.. with separate thread..?? as I dont know how long the process takes place?.. Then have to start process again..
    if someone has tried it already.. or know how to proceed.. please let me know!!
    Thanks in advance!!
    gervini

    What kind of process is it ?
    Do you "have" to run only while your applicationruns
    or after it has exited, too ?Its an .exe tool.. a kinda optimizer..
    Well I am displaying.. a small frame.. with two
    buttons.. START and STOP.. so I have to run it
    until.. STOP is pressed..(and have to take care..
    when STOP is pressed.. it should complete that
    running process.. and then stops..)So.. obviously.. you.. run.. only.. one.. of.. these.. processes.. at.. once.., don'..t.. you.. ?..
    Do you need to track when the process has finished (i.e. giving the user some feedback) ? If so, I'd suggest starting the process in a separate Thread, doing a waitFor() (don't forget to empty the process' outputstreams), and notifying your GUI when the Thread ends (i.e. when the child process has ended).
    Furthermore, I suppose you'll need to keep a reference to the Process Object somewhere else if you want to be able to stop it (supposedly using destroy() or some command the process understands to the Process' System.in).
    Therefore a while() loop seems to be right out, IMO. Unless you have to start the Process again as soon as it's finished, without any interaction from the user, which wouldn't quite seem to fit in the scenario you describe.

  • How to run shell script using External Process in Process Flow?

    Hi,
    We can run external process using Process flow.
    I would like to run shell script as external process in Process flow.
    Could any one please explain it?
    Thanks and regards
    Gowtham Sen.

    HI,
    As you said I tried this case. I got the following error. The script is running successfully while I tested at unix command prompt.
    The error is as follows..
    tarting Execution PFPS_SMPL_RUNSHELL
    Starting Task PFPS_SMPL_RUNSHELL
    Starting Task PFPS_SMPL_RUNSHELL:EXTERNALPROCESS
    /SOURCE_FILES/CollectFiles.sh: line 1: ls: command not found
    /SOURCE_FILES/CollectFiles.sh: line 1: wc: command not found
    /SOURCE_FILES/CollectFiles.sh: line 1: ls: command not found
    Completing Task PFPS_SMPL_RUNSHELL:EXTERNALPROCESS
    Starting Task PFPS_SMPL_RUNSHELL:EXTERNALPROCESS_1
    SQL*Plus: Release 10.1.0.2.0 - Production on Fri Sep 29 22:57:39 2006
    Copyright (c) 1982, 2004, Oracle. All rights reserved.
    ERROR:
    ORA-12545: Connect failed because target host or object does not exist
    Enter user-name: SP2-0306: Invalid option.
    Usage: CONN[ECT] [logon] [AS {SYSDBA|SYSOPER}]
    where <logon> ::= <username>[<password>][@<connect_identifier>] | /
    Enter user-name: SP2-0306: Invalid option.
    Usage: CONN[ECT] [logon] [AS {SYSDBA|SYSOPER}]
    where <logon> ::= <username>[<password>][@<connect_identifier>] | /
    SP2-0157: unable to CONNECT to ORACLE after 3 attempts, exiting SQL*Plus
    Completing Task PFPS_SMPL_RUNSHELL:EXTERNALPROCESS_1
    Completing Task PFPS_SMPL_RUNSHELL
    Completing Execution PFPS_SMPL_RUNSHELL
    My scenario is---
    I am trying to return a file name from one shell script. I created a external process for that. After completion of this process, I am running another script which takes that file name and trying to create a external table. The both scripts are runnning successfully. But while I am trying to run using process flow, its not coming.
    And I am not getting the way to catch the output of external process and pass it as parameter as another external process.
    Any suggestions are welcome.
    Thanks and regards
    Gowtham Sen.

  • RW-50004: Error code received when running external process.

    Hi,
    I am trying to install 11.5.10 on windows vista and receiveing following error.
    RW-50004: Error code received when running external process. Check log for details. Running Database Install Driver for VIS Instance
    When checked on the log file following is the error. Could anyone pls help me with this regard
    There was an error while running the command - c:\OracleApps\visdb\9.2.0\temp\VIS_erp\adrun9i.cmd APPS APPS
    The process tried to write to a nonexistent pipe.
    The process tried to write to a nonexistent pipe.
    The process tried to write to a nonexistent pipe.
    The process tried to write to a nonexistent pipe.
    The process tried to write to a nonexistent pipe.
    The process tried to write to a nonexistent pipe.
    The process tried to write to a nonexistent pipe.
    The process tried to write to a nonexistent pipe.
    The process tried to write to a nonexistent pipe.
    The process tried to write to a nonexistent pipe.
    RW-50010: Error: - script has returned an error: 1
    RW-50004: Error code received when running external process.
    "dbInstancecfg" file shows below error
    Copyright (c) 1991, 2002, Oracle Corporation. All rights reserved.
    Connecting to (ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROCVIS))
    TNS-12541: TNS:no listener
    TNS-12560: TNS:protocol adapter error
    TNS-00511: No listener
    32-bit Windows Error: 2: No such file or directory
    Connecting to (ADDRESS=(PROTOCOL=TCP)(Host=erp.erp)(Port=1521))
    TNS-12541: TNS:no listener
    TNS-12560: TNS:protocol adapter error
    TNS-00511: No listener
    32-bit Windows Error: 61: Unknown error
    LSNRCTL for 32-bit Windows: Version 9.2.0.6.0 - Production on 13-JUL-2008 05:48:04
    Copyright (c) 1991, 2002, Oracle Corporation. All rights reserved.
    Starting tnslsnr: please wait...
    TNS-12546: TNS:permission denied
    TNS-12560: TNS:protocol adapter error
    TNS-00516: Permission denied
    32-bit Windows Error: 5: Input/output error
    addlnctl.cmd exiting with status 3
    OpenSCManager failed
    adsvdlsn.cmd exiting with status 1002
    ERRORCODE = 1002 ERRORCODE_END
    .end std out.
    System error 1060 has occurred.
    The specified service does not exist as an installed service.
    .end err out.
    File c:\OracleApps\visdb\9.2.0\appsutil\install\VIS_erp\afmkinit_inst.cmd not instantiated in the current pass, this file will not be executed
    Executing script in InstantiateFile:
    c:\OracleApps\visdb\9.2.0\appsutil\install\VIS_erp\afmkinit.cmd
    script returned:
    Sun 07/13/2008
    05:48 AM
    1 file(s) copied.
    1 file(s) copied.
    1 file(s) copied.
    "afmkinit.cmd exiting with status 0"
    ERRORCODE = 0 ERRORCODE_END
    .end std out.
    .end err out.
    Skipping INSTE8_PRF
    Skipping INSTE8_APPLY
    [AutoConfig Error Report]
    The following report lists errors AutoConfig encountered during each
    phase of its execution. Errors are grouped by directory and phase.
    The report format is:
    <filename> <phase> <return code where appropriate>
    [SETUP PHASE]
    AutoConfig could not successfully execute the following scripts:
    Directory: c:\OracleApps\visdb\9.2.0\appsutil\install\VIS_erp
    adsvdlsn.cmd INSTE8_SETUP 1002
    AutoConfig is exiting with status 1

    Thanks for the update and the link was informational.
    Can I install following on windows vista? Pls confirm.
    Oracle® Applications 11i Release 10.2 Media Pack for
    Microsoft Windows (32-bit) No That's not possible, if you would like to use this machine for Applications then the OS needs to be changed or install vmware/Microsoft Virtual PC with a Certified Operating system to be able to use Applications.
    Thanks
    Ronald

  • Interact with extern process by Runtime.exec()

    Hi,
    I want interact with a extern process by Runtime.exec(), but I don't Know the way for introduce the params required for the extern process.
    So, Is posible, interact with the extern process from Java?
    Thanks

    Exactly, I would like to know how exec can pass a PIN
    number when the proccess already has been launched. Sounds like you're doing it through the process' stdin. Read that article I linked.
    You'll have to call Process.getOutputStream() or whatever that method is. To you it's an OutputStream, to the process, it's input. You'll write the stuff to that stream that you'd type to the command line. If you want to get that from the user interactively, you'll do it like you would any interactive user input in any Java program--get it by reading System.in or from some GUI element, and then take that and write it to the process' stream.
    If you're not familiar with I/O in Java, look here:
    http://java.sun.com/docs/books/tutorial/essential/io/index.html

  • When running the workflow background process for drop shipment order, sale order line's status gets automtically closed instead of awaiting shipping

    Hello friends,
    I am created a drop shipment order with all the setups done . now i have booked the sale order as source type external. but when i run the workflow background process , after completing the report when i check the sale order line status it changes to "closed" instead of "awaiting shipping".
    Plz guide me if i have missed something in the setups.
    thanks,
    Sachin

    Hi Sachin,
    pls check the below notes from MOS
    Drop Ship Sales Order Cycle In Order Management (Doc ID 749139.1)
    Vision Demo - How To Create A Drop Ship Sales Order/Purchase Order (Doc ID 1060343.1)
    Thanks
    -Arif.

  • How to pass BindVariables to External Process (Workflow)

    I build a shell script (unix) which accepts a command line parameter .... a "filename"
    The "filename" is a dynamic name!
    The workflow is build with a custom input parameter "filename" ... which I want to pass to an external process, which calls this shell script:
    How can I do that ?
    ExtProcess:
    Command : Val=/bin/ksh
    Parameter_List : Val=":/home/bin/myscript.sh:${Task.Input}:"
    (Binding ":Filename" replaces the whole value, sorry)
    Succes_Threshold: Val=0
    Script : Val="" , Binding=":Filename"
    ... does not pass the value of ":Filename"
    Script : Val="/tmp/fixed.name"
    ... works only with fixed names
    what I really need is something simple like:
    Parameter_list : Val=":/home/bin/myscript.sh:${Parameter.Filename}:FIXPARAM:"
    or Script : Val=":${Parameter.Filename}:${Parameter.Param2}:${Parameter.Pram3}"
    ... similar problem I had with FTP, I found no way to pass dynamic filenames or other parameters (except LOCATION Parameters)
    ... similar problem I had with EMAIL I found no way to include PARAMETERS to the mail body (except to replace the whole body by 1 parameter)
    Is there a solution or is in current version OWB 9.2 only "static" parameters supported.
    I also was missing to pass OUTPUT-parameters for example of a TRANSFORMation,
    I also was missing some urgent SYSTEM-parameters for self identification of the process(like "SYSTEM.TASK_NAME" "SYSTEM.EXECUTION_AUDIT_ID" "SYSTEM.ITEM_KEY" )
    Thanks for all hints and best regards
    Martin

    Actually... After further investigation this may not be needed. I'd be interested in the answer, to understand what is possible.
    The concept of passing parameters in the OWB workflow designer is rather limited, in my humble opinion. Sure, you can designate a "start" sequence that takes a parameter and you can pass that to mappings/transformations but there is no chance for feedback. Ie, if I manually (or through some rigged script) execute the flow with the "PARAMETER" then it will be able to bind. What about mid-flow. IE, select the record to be "processed", then call a "flow" with that as a parameter.
    Am I mistaken? Is there a way to expose the "out" parameters of a mapping, or the return of a "transformation function" as "OUTS" in the process flow.
    Of course, in a world where everything is OWB and in the DB one can leave data in tables, and pick it up on the other mappings. HOWEVER, most BI systems involve external retrievals, etc. that need a bit more "intelligence" then "run and return 1,2,3" . :)
    Hope this is helpful for product feedback. If I'm mistaken on the WF capabilities please clue me in. :)
    btw, I'm an OWB fan, certainly. The progress over the past two years has been excellent.

  • S.O.S PROBLEMS COMUNICANTING EXTERNAL PROCESSES IN JAVA UNDER LINUX

    I've programmed a little program in C called "cinterpreter" which works like
    an interpreter, when it launches it shows a welcome message to the display
    (standart output), then is always waiting for strings from the keyboard
    showing the length of the input strings until the "quit" string is received,
    in that case the C program named "cinterpreter" finish, here we can see the
    code:
    # include <stdio.h>
    # include <string.h>
    # include <stdlib.h>
    char presentacion[8][80] = {
    " ||||||||||||||||||\n",
    " --- Welcome to Maude ---\n",
    " ||||||||||||||||||\n",
    " Maude version 1.0.5 built: Apr 5 2000 15:56:52\n",
    " Copyright 1997-2000 SRI International\n",
    " Thu Aug 9 13:40:25 2001\n",
    " \n",
    " \n"};
    void longitud(char * cadena)
    int t;
    for(t=0;t<3;t++)
    printf("MAUDE_OUT> la cadena %s tiene %d caracteres\n",cadena,strlen(cadena));
    fflush(stdout);
    int main()
    char cadena[80];
    int i;
    char ch;
    for(i=0;i<8;++i) printf("%s",presentacion);
    printf("\n");
    fflush(stdout);
    do {
    printf("Press any key to continue\n");
    scanf("%c",&ch);
    printf("%c\n",ch);
    fflush(stdout);
    }while (ch != 'q');
    printf("\n");
    while( strcmp(cadena,"quit") !=0)
    printf("\nMAUDEENTRADA>");
    fflush(stdout);
    scanf("%s",cadena);
    longitud(cadena);
    I'm intereted in running this program, control it's standart input and
    starndart output through a java program through the Runtime , process class
    and the correponding methods like "exec", getInputStream, getOutputStream,
    getErrorStream, the question is that I do not Know what I'm doing wrongly but
    I don't get what I want, I'm interested in sending input to the C subprocess
    thorugh its stdin getting it by getoutputStream method, and then read its
    answer from its stdout getting it by getoutputStream, then question is that I
    can sent de first string and read the first answer but I can't repeat it
    again, and I would like to begin a dialog with the subprocess so I need to
    send many messages and receive its answer to it, but many times, not just one,
    by the moment I got it but just one, if any body can help with this please
    answer the question or send any answer to the next adresses
    e-mail:
    [email protected]
    [email protected]
    *************** java code **********************
    import java.io.*;
    public class mioss {
    static String proceso = "/bin/cinterprete";
    static Process p = null;
    //--------- input writting method -----------
    static void escribe(OutputStream procesoescribe, String s) {
    BufferedWriter laentrada = new BufferedWriter(new
    OutputStreamWriter(procesoescribe));
    try{
    laentrada.write(s + "\n");
    laentrada.flush();
    }catch(IOException e) {System.out.println("error de escritura");}
    //----------- output reading method ---------------
    static void leesalida(InputStream procesosalida){
    String l;
    BufferedReader lasalida = new BufferedReader(new
    InputStreamReader(procesosalida));
    try{
    while ((l = lasalida.readLine()) != null){
    System.out.println(l);
    } catch(IOException e) {System.out.println("error de readline");}
    //------------- reading error method --------------------
    static void leerror(Process p){
    String l;
    BufferedReader elerror = new BufferedReader(new
    InputStreamReader(p.getErrorStream()));
    try{
    while ((l = elerror.readLine()) != null){
    System.out.println(l);
    elerror.close();
    } catch(IOException e) {System.out.println("error de readline");}
    //--------------- principal method main -------------------------
    static Process proc = null;
    public static void main(String [] Args) {
    try{
    Runtime r = Runtime.getRuntime();
    proc = r.exec(proceso);
    escribe(proc.getOutputStream(),"map(+2)[3,3]");
    leesalida(proc.getInputStream());
    escribe (proc.getOutputStream(),"map(*3)[2,2]");
    leesalida(proc.getInputStream());
    }catch(Exception e) {System.out.println("error de ejecucion del
    proceso");}
    System.out.println("THE END OF THE PROGRAM");

    The problem is with the leesalida method.
    There you are reading form the output sream of the process usingBufferedReader.readLine.
    readLine returns null only when it gets to the end of the stream, or here the stream ends only when the external processes ends.
    You can modify your code like this:
    public class mioss {
        static String proceso = "cinterprete";
        static Process p = null;
        //--------- input writting method -----------
        static void escribe(OutputStream procesoescribe, String s) {
         BufferedWriter laentrada = new BufferedWriter(new
             OutputStreamWriter(procesoescribe));
         try{
             laentrada.write(s + "\n");
             laentrada.flush();
         }catch(IOException e) {System.out.println("error de escritura:" + e);}
        //----------- output reading method ---------------
        static void leesalida(InputStream procesosalida, int nLines){
         String l;
         BufferedReader lasalida = new BufferedReader(new
             InputStreamReader(procesosalida));
         try{
             while(nLines-- > 0) {
              l = lasalida.readLine();
                    System.out.println("from java:\t" + l);
         } catch(IOException e) {System.out.println("error de readline");}
        //------------- reading error method --------------------
        static void leerror(Process p){
         String l;
         BufferedReader elerror = new BufferedReader(new
             InputStreamReader(p.getErrorStream()));
         try{
             while ((l = elerror.readLine()) != null){
                    System.out.println(l);
             elerror.close();
         } catch(IOException e) {System.out.println("error de readline");}
        //--------------- principal method main -------------------------
        static Process proc = null;
        public static void main(String [] Args) {
         try{
             Runtime r = Runtime.getRuntime();
             proc = r.exec(proceso);
             leesalida(proc.getInputStream(), 9);
             escribe(proc.getOutputStream(),"first");
             leesalida(proc.getInputStream(), 4);
             System.out.println("Done first !\n");
             escribe (proc.getOutputStream(),"second");
             leesalida(proc.getInputStream(), 4);
             System.out.println("Done second !\n");
         }catch(Exception e) {System.out.println("error de ejecucion del proceso");}
         System.out.println("THE END OF THE PROGRAM");
    } Regards,
    Iulian

  • How to execute External Process activity in flow

    Hi,
    I want to run a pl/sql procedure as an external process in a process flow (OWB904 on WinNT). The procedure is run from sqlplus in a .bat file. I try to follow the example in the documentation; setting the value of the Command parameter to c:\winnt\system32\cmd.exe and the Parameter List value to ?/c?c:\\temp\\test.bat .
    The flow deploys ok and executes without errors, but the procedure is not run (I can tell because it contains an INSERT and COMMIT, but the row is never inserted). I'm pretty sure the connection info is correct; the test.bat file executes ok when run in a 'dos' window. I am obviously missing something here....
    Any clues?
    Regards
    Rolf

    Hi Richard,
    The <HOME>\owb\log\owbrt.log.6 file contains the following:
    15:21:05 [93EFE] AuditId=43689: Processing execute request
    15:21:05 [5843C4] Attempting to create adapter 'class.RuntimePlatform.0.NativeExecution'
    15:21:05 [5843C4] Attempting to create native operator 'class.RuntimePlatform.0.NativeExecution.ProcessFlow'
    15:21:06 [93EFE] AuditId=43693: Processing execute request
    15:21:06 [365F84] Attempting to create adapter 'class.RuntimePlatform.0.NativeExecution'
    15:21:06 [365F84] Attempting to create native operator 'class.RuntimePlatform.0.NativeExecution.Shell'
    15:21:07 [365F84] task_end auditId=43693
    15:21:07 [93EFE] AuditId=43693: Request completed
    15:21:07 [5843C4] task_end auditId=43689
    15:21:07 [93EFE] AuditId=43689: Request completed
    Rings any bells for anyone ??
    Regards
    Rolf

  • Invalid external process reference: TaskDefinition Approval Notification Ev

    I am getting following Exception while deleting the User from LDAP through sun IDM.
    com.waveset.util.WavesetException: Invalid external process reference: TaskDefinition Approval Notification Evaluator
    I have configured subject as Configurator in deprovision view and running the process through UserId IW584.
    Please let me know what is the cause of this issue.
    Thank You.

    This is main task definition which is calling another workflow named "Bulk Inactive WWID Deletion" as Async process.
    <Action id='1' name='Create Process View' application='com.waveset.session.WorkflowServices'>
    <Argument name='op' value='createView'/>
    <Argument name='type' value='Process'/>
    <Argument name='endUser' value='true'/>
    <Argument name='viewId' value='Process'/>
    <Argument name='process' value='Bulk Inactive WWID Deletion'/>
    <Argument name='authorized' value='true'/>
    <Argument name='wwidFilePath'>
    <ref>wwidFilePath</ref>
    </Argument>
    <Return from='view' to='processview'/>
    </Action>
    <Action id='2'>
    <expression>
    <block name='setName'>
    <set name='processview.task.taskName'>
    <concat>
    <s>InactiveWWIDDeletion</s>
    <s>:</s>
    <ref>displaydate</ref>
    </concat>
    </set>
    <set name='processview.task.execMode'>
    <s>async</s>
    </set>
    </block>
    </expression>
    </Action>
    <Action id='3' name='Checkin Process View' application='com.waveset.session.WorkflowServices'>
    <Argument name='op' value='checkinView'/>
    <Argument name='view' value='$(processview)'/>
    <Argument name='endUser' value='true'/>
    <Argument name='authorized' value='true'/>
    </Action>
    <Transition to='end'/>
    <WorkflowEditor x='231' y='279'/>
    </Activity>
    Another Task Workflow will create a Deprovision View to Unassign LDAP resource and set email address to null.
    Thanks

  • Production Variance Analysis for External Process Cost

    Dear all,
    We are on 4.7 R3.
    In production order we have routing/operation with mutliple external processes. The problem is production order cost analysis (CO03) displayed the external process cost variance in lump sum (it adds multiple external processes cost into a single line).
    We need to be able to analysis the external process cost variance by each process. We want to generate a report that displayed the external process cost variance for each processes, however in table COSPA there is no information of the external process name, it also displayed the cost in a lump sum amount.
    How to enable the external process cost variance by each process? What table capture the external process cost with the information of the external process name/ID?
    Thank you very much in advance for your kind assistance.
    Rgd,
    Dahlia Tan

    Hi
    Use KKO0 reports..
    Assign Cost Comp Structure in OKN0 and choose Prod Group = Material Group in OKN0
    Transport these settings across to all clients...
    Run KKRV to collect data and then run KKO0 reports
    Br, Ajay M

  • Process Flow - External process - Return status

    Did any one know how to capture or get the return value when executing a shell script thru Process flow - User defined - External process?
    This is the scenario.
    OWB Server on UNIX. Version-10.2, Database-9i
    I am executing a simple "whoami" command thru the user-defined process.
    How do I capture the return value?
    One of my shell script returns a value. Based on this return value I have to send a page or schedule a dependency job on successful completion.
    Thanks.

    To add a parameter to the process flow, you will have to add a parameter to the start activity in the activity view (lower left corner of the process flow editor), by clicking the Add button.
    You can then pass this parameter to the other activity by using the parameter binding - click on the BINDING column of the activity parameter you want to pass it to and select the parameter added to the start activity in the previous step from the drop down list.
    When the PF is run, the user will be prompted for a parameter, then it will be passed to the next activity.
    Regards:
    Igor

  • 'External process-0130' Inspection in QM?

    Hi Team,
    Requesting your valuable help for below scenario.
    Step 1: Receiving the material(M1) in GR stage from 'vendor1' - 01 inspection active with one operation(op10-Visual inspection) in Inspection plan .If material ok it should be sent to External process.
    Step 2 : Sending received '(M1) material' to External processing to 'vendor2' through P.O
    Step3: Recieving the 'processed material' M1 material and Inspection
    As per SCN links, I under stood that '0130 inspection type' to be used.
    Q1:Prefered tick mark for 0130 / 01 ?
    Q2:Where 0130 insp.type should assigned? is it required to assign in any
    Q3:If preferd tick put to one of 01/ 0130 inspection type-Automatic insp.lot for 2nd insp.type will not be created?
    Help me out with the SAP-QM-best practice
    Regards,
    Karthik(Trainee-SAP-QM)

    Hi Sai,
    Nitin has correctly suggested the best standard SAP approach you should adopt. In case if only activating "01" is acceptable to business it will solve your case. It's easy to implement, maintain, error-free and scalable.
    Paralelly (if at all its required..), you can explore further on the custom approach like below -
    a) Activate insp type "01" and "0130" for the relevant materials. Do not flag any insp types as "PreferredInsTyp".
    b) Create a custom table to maintain a combination like Material + Insp Type + Insp Plan. Example below -
    M1 - 01 - IP01
    M1 - 0103 - IP02
    c) During Goods Receipt, user exit/BADI should if the PO is Subcontractor PO (Item Cat L) or not. If Subcontracting PO, then it should allocate the insp type 0130, else it should assign insp type "01" for all normal PO, or Sch Agr, etc.
    d) It should first validate how many inspection plans for the concerned material is 'Active" for the usage "5". Now check form the Z-table if for the same material, Z-table has one active insp plan added. Then allocate the insp plan to the inspection lot. There can be a chance that there are more than one active insp plans for same usage available and in Z-table a plan is available which is no more active, then the program should not allocate any insp plans, and the inspection lot status should be "CRTD". Same is the case if there is no active inspection plan available and added in Z-table for the material.
    e) In case if you wish to have one more round of check at "Vendor Level" on the selection of inspection plan, you can extend this Z-table with Vendor too!!. Then the Ztable will look like below -
    M1 - 01 - V1 - IP01
    M1 - 01 - V2 - IP01
    M1 - 0130 - V1 - IP03
    M2 - 0130 - V2 - IP04...
    Please do not adopt a custom approach, just to try out fancy things as they are difficult to implement, complexity gets higher, lots of codings involved, lots of testing required and difficult to maintain in the long run. Moreover there should be a significant business benefit in it and everyone should be aligned to take a decision to go with such custom approach. These are just my thoughts!!
    Thanks,
    Arijit
    Message was edited by: Arijit Banerjee

  • Can Target Disk Mode be run from an external hard drive?

    Hi
    My hard drive crashed on me the other day (again) and the apple genius told me all I could do was recover my data and send it in (again)
    QUESTION:
    Can target disk mode could be run using an external hard drive as opposed to another mac? If so, how?
    I think corrupt files on my external hard drive might have crashed my ibook hard drive and I'm wondering if I should really try using the external to save all my info from my ibook. Am I completely clueless about computers or is this actually a possible problem?
    Thanks

    HI Andrea,
    No, you are not completely clueless. If you follow John's sound advice using Target Disk Mode from another Mac, maybe you have a friend or relative who has one. Here's the information on how to use Target Disk Mode that I found in the Apple Help menu:
    Transferring files between two computers using FireWire:
    You can use FireWire to connect your computer to another Mac and have one of the computers appear as an external hard disk on the other computer. This is sometimes called Target Disk Mode.
    To transfer files using FireWire:
    Shut down the first computer and leave the second computer on.
    Connect the two computers using a 6-pin to 6-pin FireWire cable. (If both computers have higher-speed FireWire 800 ports in addition to the standard FireWire 400 ports, you can use a 9-pin to 9-pin cable with the FireWire 800 ports to transfer data at higher speeds.)
    Open System Preferences, click the Startup Disk, and click Target Disk Mode. (Or, start up the first computer while holding down the T key.)
    A disk icon for the first computer appears on the desktop on the second computer. Drag files to and from the disk to transfer them.
    When you finish, eject the first computer's disk by dragging its icon to the Trash. (While you drag, the Trash icon changes to an Eject icon.)
    Push the power button on the first computer to shut it down and disconnect the FireWire cable.
    If the computer to which you connect your computer is running Mac OS 9, it must have FireWire version 2.3.3 or later installed. Use Apple System Profiler (located in /Applications/Utilities) to check the version of FireWire installed. If it has an older version, get an update at the Apple FireWire website at www.apple.com/firewire.
    It's a very simple process but it can only be done between two Macs. You can only "target" another Mac, not an external drive.
    It sounds like your iBook needs service. And if you think that your external drive caused the problem to start with, I wouldn't use it again if you can do the TDM instead to retrieve your important data.
    Also, be careful with total free drive space. Never fall below 15% free space. Open Disk Utility from the Applications/Utilities folder. Then select MacintoshHD in the panel on the left. Then look down towards the bottom of the window on the right. You'll see "Capacity" and "Availablity". It's a good idea to keep track of free space all the time. You need a minimum of 15% just to boot.
    Hope this helps...
    Carolyn

Maybe you are looking for