Difference between Swdd and Swdb in Workflow Creation..

Hi,
Why there is two transactions Swdd and Swdb to Create Customized workflow?What is the difference between Swdd and Swdb?Thanks in advance....

Hi,
SAP SWDD
SAP Description: Workflow Builder
SAP Report Program: RSWDSTRT
and
SAP SWDB
SAP Description: Create workflow
SAP Report Program: RSWDBUILD
Both are associated with different SAP Programs. One build work flow and one create new.
Hope this will help.
Reward Point if helpful.
Thanks,
Raja

Similar Messages

  • What is the difference between action and workflow? How do I decide that I need an action in a transaction and not a workflow and vice versa?

    Dear Experts,
    I have few doubts and request your expert inputs to clarify my doubts.
    What is the difference between action and workflow? How do I decide that I need an action in a transaction and not a workflow and vice versa?
    Your earliest response is highly appreciated.
    Thanks,
    SMTP

    Hi SMTP,
    First of all, as I mentioned action is nothing but an executable work item which is designed in the workflow itself. In other words, Workflow is like your OOPS class. At run time, workflow instances are created just like objects of classes. Now, the steps designed in the workflow are called TASKS and the instances of tasks are called WORKITEMS. Now, the work items where any user action is required are called executable work items. ANd the work items where no user action is required (for example, sending an email in background) are called non-executable work items.
    Whether to go with development of workflow or not depends upon your business scenario. If your requirement is only to send an email and you find any BAdi or exit where in you can write your logic then there is no need of creating a workflow. If there is a defined business process with defined users and time lines, then you can go with the development of workflows.
    Rest, the below link will help you in understanding basic concepts of workflow :
    Why use SAP Workflow? | Insight Consulting Partners
    Regards,
    Richa

  • Difference between k2 and designer workflow?

    Hi All,
    What is the Difference between k2 and designer workflow? Thanks in advance!

    http://social.technet.microsoft.com/Forums/sharepoint/en-US/fc569e59-57fd-4c5b-9786-fd06d9dd78ea/sharepoint-2013-workflow-vs-k2-workflow?forum=sharepointgeneral
    SharePoint 2013 has many improved
    features, one of them is workflow engine, the new workflow platform, dubbed ‘workflow manager’, brings with it many new enterprise class capabilities, like: high density and multi-tenancy, instance management, fully declarative authoring, you can refer to
    following article to better understand this:
    workflow in SharePoint 2013:
    http://technet.microsoft.com/en-in/sharepoint/jj556245.aspx
    For k2 workflow comparing with SharePoint,
    I know little about k2 workflow, the following discussion seems contains related information:
    http://www.k2underground.com/forums/t/15608.aspx

  • What is the difference between RFX and Reverse Auctions.

    Hi friends
    What is the difference between RFX and Reverse Auctions? Is Reverse Auction a tool.
    Can we perform Reverse Auctions in Live Auction cockpit.
    Regards
    Surya

    A commonly used term in bidding is RFx. This is a generic term
    used to describe different types of requests. RFx includes, for example,
    Request for Proposal (RFP), Request for Quotation (RFQ), Request for
    Information (RFI), etc.
    Reverse auctions include many of the same features as Bid Invitations, including (but not limited to) the following:
    Copy with reference
    Auction search
    Open Catalog Interface
    Internal / external attachments of any type
    Customer fields
    Error log
    Change log
    Template management
    Business partners at line level
    Workflow approval of bids
    PO / Contract creation (via Bidding Engine)
    XML export
    Yes you can perform reverse auctions in live auction **** pit
    Thanks
    Ravi

  • What is the difference between ERP2004 and SAP 47 Enterprise?

    Currently we have SAP 47 Enterprise with WAS 6.2. I understand ERP2004 is NW and 6.4 sp9. Can any one please let me know the major difference between ERP2004 and SAP 4.7 Enterprise ( more from abap / workflow view)?
    Thanks
    Swamy

    From Abap point of view some of the major add-on in erp2004,netwever :
    1) Development of webdynpro studio for java development for portal and iviews.
    2) Major abap development uses <b>Abap object oriented</b> methodology, rathet hten old conventional Abap,i.e MVC model (Model,View,Controller) where in it uses concept of classes,interfaces,etc.
    3) Advanced BSP tech using MVC model to develop web based modules
    4) It is closesly integrated with web-based CRM and BW/APO

  • What is the Difference Between Adapter and Proxy

    Hi Master,
    I want to know the Difference Between Adapters and Proxies.
    And when we are using proxies and Adapters....
    Regards,
    SReddy

    Adapters are part of the Adapter Framework. Adapters provide the technical connectivity to enable the integration of SAP and non-SAP applications through XI’s Integration Engine.Again, Adapters are used for connectivity from and to external systems with XI that cannot communicate via proxies.Adapters are only required in SAP systems older than 6.20 and external systems.
    Systems based on 6.20or higher can communicate directly with proxies.
    The literal definition of a proxy is an object / process authorized to act for another; an agent or a substitute. In simpler terms, proxies in the XI context are objects used to encapsulate the creation (from a sender system) or parsing of XML (at a receiver system) as well as the communication with the relevant runtime components required to send or receive those messages.
    Proxies are generated from Message Interface in IR.
    The Proxy Runtime controls these objects / processes, and can itself be controlled by the applications it communicates with. The Proxy Runtime currently has the following components available: 1. ABAP Proxy Runtime – Communication using XI or Web Services a. Web Service Runtime 2. Java Proxy Runtime – Communication using XI (J2EE) The objects that the Proxy Runtime then controls are created via Proxy Generation, for both ABAP and Java. In the following sections a ‘client’ proxy is used by an application to send messages outside of the system it resides in (normally to the IS in this context). Conversely, a ‘server’ proxy is used by an application to receive messages from sources outside itself (again, normally the IS in this context).

  • Differences between MIC and Process control

    Hi
    Could someone please let me know what are the major differences between MIC and process control 2.5.
    I have heard that Process control 2.0 is not being used now.
    So could you please let me know what the differences for MIC and Process control 2.5.
    Regards
    Sandhya

    Hi Sandhya,
    the major differences are:
    - automated controls (SAP and non-SAP systems)
    - UI interface based on NetWeaver Business Client (NWBC)
    - flexibility on scheduling assessments and tests based on control attributes
    - configurable reports and extraction to either .pdf or .xls
    - possibility to se configure workflow to send reminders and escalations
    - integration with Access Control 5.3, RAR component
    - concept of service providers allowing controls to be referenced between different organizations (former MIC orgunit)
    - assessments based on surveys (questions to be answered)
    - effectiveness tests based on test plan (both tests and steps)
    Regards
    Andre Yuji

  • Differences between @EJB and @Resouce?

    Hi,
    I am confused about the differences between @EJB and @Resource?
    1.
    Can Session Beans be injected for both?
    If so what are the pro's / con's?
    2.
    Are the any difference between the type of components that cna be registered for one but not the other?
    3.
    Are they both equally usable with the ENC?
    Many thanks.

    @EJBs are 'special' resources. For example, @EJB (for a stateful session bean) results in
    1. Creation of the Stateful Session Bean,
    2. Other dependencies are injected into this newly created bean,
    3. If the bean has a @PostConstruct bean then that method is invoked (after invoking applicable interceptors)
    Hope this helps

  • Difference between me21 and me21n

    hi,
       plz tell me what is the difference between ME21 and ME21N transaction.....

    Hi,
    Me21n is a new tcode for PO with all the data gathered into a single screen ie. why called enjoy transaction ie. you can see header, item overview, item details in the single screen...
    There are few new added functionalities are :
    You can directly refer the other documents for making or for creation of PO via document overview
    You can have exchange rates get copied..
    with the enjoy transaction you can directly make PR from PO...etc..
    While
    me21 is old tcode for PO having all data distributed inside the main window...
    Hope it helps..
    Regards
    Priyanka.P
    AWARD IF HELPFULL
    Edited by: Priyanka Paltanwale on Aug 22, 2008 7:00 AM

  • What's the difference between flash and premier

    I know Flash is usually used for game production and Premier for video creation, but I saw poeple also can use Flash for video production as well. So I need to know what are the differences between the two of them.

    Flash is used most often for animation, and especially interactive animation.
    Premiere is used for video production, but with certain limitations, such as version support, or lack of it, can work with Flash animations.
    There is some cross-over, just as there is with Premiere and After Effects, but each program has specific uses.
    Good luck, and that is the very short answer. Others will likely be able to give you a point-by-point difference between Flash and Premiere.
    Hunt

  • Activity System status: differences between u0093Openu0094 and u0093In processu0094 status

    Dear Experts,
    What’s the difference between “Open” and “In process” system status? In help.sap.com it: “There are four system statuses that represent the life cycle of the business transaction:
    • Open: has been recently created and not yet processed (for example, contract from the Internet)
    • In process: administrator is clearing up questions”
    But, how does the system assumes the “In Process” status ?? I‘ve tested business activities creation with different employees assigned and, when editing and saving the business activities with these BP’s the system status does not change.
    However, in other “unknown” situations the status system is changed to “in Process”.
    Any ideas about the meaning of the “In Process” status? And when the business activity switches to that?
    Thanks in advance,
    Joao

    Hi,
    These four system statuses that represent the life cycle of the business transaction:
    ·        Open: has been recently created and not yet processed (for example, contract from the Internet)
    ·        In process: administrator is clearing up questions
    ·        Released: contract is complete and legal. Follow-up processes can be started (printing, billing, distribution, releases and so on)
    ·        Completed: All actions directly linked to contract are completed
    ·        Closed: all actions indirectly linked to the contract are closed (for example, from R/3: batch run to actual costs)
    Each status having its own control at the configuration level. If you observe the following process you may understand the importance of various statuses.
    For example in any transaction by default status would be Open. Once the transaction opened by the respective responsible person he will change the status as In Process, Once the assigned task is completed he will change the status as Completed.
    Please notice the configuration settings in the following navigation path:
    SPRO->IMG->CRM->Transactions->Basic Functions->Status Management-> Change Status Profile for User Status->Select Quotation->Double click on the different status. You can observe the difference.
    Hope I convinced.
    Best Regards,
    Johnny.
    Reward if it helps.

  • Difference between SOA and B1ISN

    Hi all,
    Can anybody tell  me what is the difference between SOA and B1ISN ???
    Thanks

    Hi,
    SOA, and more specifically eSOA, is a common service-oriented architecture / platform for SAP products.  Partners can build business applications in .NET based around and on top of this new architecture for SAP Business One and other SAP / 3-rd party applications (one of the samples provided shows integration between SAP Business One and Outlook).  You can find more information about eSOA [here|https://websmp108.sap-ag.de/~sapidb/011000358700001387112008E].
    B1iSN is SAP's existing integration solution for integrating data between SAP Business One and SAP R/3.  It is built on top of SAP's B1iP technology.  Users can either develop custom content / scenarios by using the core B1iSN solution, or can develop totally new and distinct solutions using B1iP.  You can find most information about B1iP in this forum.
    In a more general sense, the answer to your question is that eSOA is a platform / architecture which allows the creation of integration solutions, while B1iSN is an existing solution built on top of B1iP.
    HTH,
    Dhruv

  • Difference between soa and esoa

    Hi,
    What is the difference between SOA AND ESOA.
    Regards
    Abhay

    Hi
    In a nutshell, ESOA are simply Web services that provide enterprise-level business functionality.They may range from very simple lookup services (like finding a company’s location or product offerings) to more complex and composite services — but what they have in common is that they’re highly integrated into your process or application.Typically ESOA are high-level components that take more granular Web services and aggregate them into reusable elements with business value. For example, take the service Cancel Purchase Order. An elementary Web service like Delete Purchase Order would simply lead to the deletion of a purchase order in the corresponding database. However, if the stated goal is “cancel purchase order,” the service has to become a more far-reaching enterprise service that handles this process end-to-end, and therefore has to trigger a number of follow-up actions, including:
    => Check against production orders
    => Check against a corresponding billing process
    => Update of inventory/warehouse information Or consider the Credit Limit Check
    service, which at first glance seems to be quite simple. Normally, this service is one ingredient of the Order Creation service. But typically, credit checking is
    really a more elaborate composite service.
    5 Key Principles of ESOA
    1. Abstraction — hiding confusing details
    2. Modularity — breaking down complexity, resulting in reusable pieces
    3. Standardized connectivity — enabling flexible composition of services to
    create bigger processes and scenarios
    4. Loose coupling — allowing for separate evolution of the various components
    without breaking any points of integration
    5. Incremental design — enabling changes to composition and configuration
    without affecting the interior of components, and vice versa
    Regards,
    Satyendra

  • Differences between awt and swing

    Ive written the following code, however Ive implemented the gui in awt rather then swing. Ive been told it hs too be in swing. What is the difference between swing and awt what will I need to change in my program so that its done using swing rather then the awt? Heres the code:
    // pp.java
    // Grant Brown
    // 22/02/02
    import java.awt.*;
    import java.awt.event.*;
    import java.io.*;
    import java.util.*;
    import javax.swing.*;
    // =========================================================
    // Class: pp
    // This class drives the customer manager. It contains the
    // main method which gets called as soon as this application
    // begins to run.
    // =========================================================
    class pp extends Frame implements ActionListener
    // Container of customer objects
    private Vector customers = new Vector (100);
    // List of names component. (Must specify java.awt in
    // front of List to distinguish the List class in the
    // java.awt package from the List class in the java.util
    // package.)
    private java.awt.List names = new java.awt.List ();
    // Delete and update button components.
    private Button delete;
    private Button update;
    // Default constructor.
    public pp ()
    // Assign "Paper Round Manager" to title bar of frame window.
    super ("Paper Round Manager");
    // Add a listener that responds to window closing
    // events. When this event occurs (by clicking on the
    // close box in the title bar), save customers and exit.
    addWindowListener (new WindowAdapter ()
    public void windowClosing
    (WindowEvent e)
    saveCustomers ();
    System.exit (0);
    // Place an empty label in the north part of the frame
    // window. This is done to correct an AWT positioning
    // problem.
    Label l = new Label ();
    add ("North", l);
    // Place the names component in the center part of the
    // frame window.
    add ("Center", names);
    // Create a panel object to hold four buttons.
    Panel p = new Panel ();
    Button b;
    // Add an Insert button to the Panel object and register
    // the current pp object as a listener for button events.
    p.add (b = new Button ("Insert"));
    b.addActionListener (this);
    // Add a Delete button to the Panel object and register
    // the current pp object as a listener for button events.
    p.add (delete = new Button ("Delete"));
    delete.addActionListener (this);
    // The Delete button should be disabled until there is at
    // least one customer to delete.
    delete.setEnabled (false);
    // Add an Update button to the Panel object and register
    // the current pp object as a listener for button events.
    p.add (update = new Button ("Update"));
    update.addActionListener (this);
    // The Update button should be disabled until there is at
    // least one customer to update.
    update.setEnabled (false);
    // Add a Finish button to the Panel object and register
    // the current customer object as a listener for button events.
    p.add (b = new Button ("Finish"));
    b.addActionListener (this);
    // Add the panel object to the frame window container.
    add ("South", p);
    // Set the background of the frame window container to
    // lightGray
    setBackground (Color.lightGray);
    // Set the size of the frame window container to 400
    // pixels horizontally by 200 pixels vertically.
    setSize (400, 200);
    // Allow the user to resize the frame window.
    setResizable (true);
    // Load all contacts.
    loadCustomers ();
    // Make sure that the frame window is visible.
    setVisible (true);
    public void actionPerformed (ActionEvent e)
    if (e.getActionCommand ().equals ("Delete"))
    delete ();
    else
    if (e.getActionCommand ().equals ("Finish"))
    saveCustomers ();
    System.exit (0);
    else
    if (e.getActionCommand ().equals ("Insert"))
    insert ();
    else
    update ();
    public Insets getInsets ()
    // Return an Insets object that describes the number of
    // pixels to reserve as a border around the edges of the
    // frame window.
    return new Insets (10, 10, 10, 10);
    public static void main (String [] args)
    // Create a new pp object and let it do its thing.
    new pp ();
    private void delete ()
    // Obtain index of selected contact item from the names
    // component.
    int index = names.getSelectedIndex ();
    // If no item was selected, index is -1. We cannot update
    // a contact if no contact item in the names component was
    // selected - because we would have nothing to work with.
    if (index != -1)
    // Remove the contact item from the names component.
    names.remove (index);
    // Remove the Customer object from the contacts Vector
    // object.
    customers.remove (index);
    // If there are no more customers ...
    if (customers.size () == 0)
    delete.setEnabled (false);
    update.setEnabled (false);
    else
    // Make sure that the first contact item in the names
    // list is highlighted.
    names.select (0);
    private void insert ()
    // Create an Insert data entry form to enter information
    // for a new customer.
    DataEntryForm def = new DataEntryForm (this, "Insert");
    // If the bOk Boolean flag is set, this indicates the user
    // exited the form by pressing the Ok button.
    if (def.bOk)
    // Create a Contact object and assign information from
    // the form to its fields.
    Customer temp = new Customer ();
    temp.name = new String (def.name.getText ());
    temp.publication = new String (def.publication.getText ());
    temp.round = new String (def.round.getText ());
    temp.address = new String (def.address.getText ());
    temp.phone = new String (def.phone.getText ());
    // Add a new customer item to the names component.
    names.add (temp.name + ", " + temp.publication);
    // Add the Customer object to the contacts Vector
    // object.
    customers.add (temp);
    // Make sure that the Delete and Update buttons are
    // enabled.
    delete.setEnabled (true);
    update.setEnabled (true);
    // Destroy the dialouge box.
    def.dispose ();
    // Make sure that the first customer item in the names list
    // is highlighted.
    names.select (0);
    // ===========================================================
    // Load all contacts from contacts.dat into the contacts
    // Vector object. Also, make sure that the last name/first
    // name from each contact is combined into a String object and
    // inserted into the names component - as a contact item.
    // ===========================================================
    private void loadCustomers ()
    FileInputStream fis = null;
    try
    fis = new FileInputStream ("Customers.dat");
    DataInputStream dis = new DataInputStream (fis);
    int nCustomers = dis.readInt ();
    for (int i = 0; i < nCustomers; i++)
    Customer temp = new Customer ();
    temp.name = dis.readUTF ();
    temp.publication = dis.readUTF ();
    temp.round = dis.readUTF ();
    temp.address = dis.readUTF ();
    temp.phone = dis.readUTF ();
    names.add (temp.name + ", " + temp.publication);
    customers.add (temp);
    if (nCustomers > 0)
    delete.setEnabled (true);
    update.setEnabled (true);
    catch (IOException e)
    finally
    if (fis != null)
    try
    fis.close ();
    catch (IOException e) {}
    // Make sure that the first contact item in the names list
    // is highlighted.
    names.select (0);
    // ========================================================
    // Save all Customer objects from the customer Vector object
    // to customer.dat. The number of customerss are saved as an
    // int to make it easy for loadCustomers () to do its job.
    // ========================================================
    private void saveCustomers ()
    FileOutputStream fos = null;
    try
    fos = new FileOutputStream ("customers.dat");
    DataOutputStream dos = new DataOutputStream (fos);
    dos.writeInt (customers.size ());
    for (int i = 0; i < customers.size (); i++)
    Customer temp = (Customer) customers.elementAt (i);
    dos.writeUTF (temp.name);
    dos.writeUTF (temp.publication);
    dos.writeUTF (temp.round);
    dos.writeUTF (temp.address);
    dos.writeUTF (temp.phone);
    catch (IOException e)
    MsgBox mb = new MsgBox (this, "PP Error",
    e.toString ());
    mb.dispose ();
    finally
    if (fos != null)
    try
    fos.close ();
    catch (IOException e) {}
    private void update ()
    // Obtain index of selected customer item from the names
    // component.
    int index = names.getSelectedIndex ();
    // If no item was selected, index is -1. We cannot update
    // a customer if no customer item in the names component was
    // selected - because we would have nothing to work with.
    if (index != -1)
    // Obtain a reference to the customer object (from the
    // customers Vector object) that is associated with the
    // index.
    Customer temp = (Customer) customers.elementAt (index);
    // Create and display an update entry form.
    DataEntryForm def = new DataEntryForm (this, "Update",
    temp.name,
    temp.publication,
    temp.round,
    temp.address,
    temp.phone);
    // If the user pressed Ok...
    if (def.bOk)
    // Update the customer information in the customers
    // Vector object.
    temp.name = new String (def.name.getText ());
    temp.publication = new String (def.publication.getText ());
    temp.round = new String (def.round.getText ());
    temp.address = new String (def.address.getText ());
    temp.phone = new String (def.phone.getText ());
    // Make sure the screen reflects the update.
    names.replaceItem (temp.name + ", " + temp.publication,
    index);
    // Destroy the dialouge box.
    def.dispose ();
    // Make sure that the first customer item in the names
    // list is highlighted.
    names.select (0);

    Ive doen pretty much what you said burt now my program isnt working at all. The window comes up but instead of doing something when you click the button it just throws shit loads of exceptions. Heres my abridged code
    // pp.java
    // Grant Brown
    // 22/02/02
    import java.awt.*;
    import java.awt.event.*;
    import java.io.*;
    import java.util.*;
    import javax.swing.*;
    // =========================================================
    // Class:PP
    // This class drives the Paper Round manager. It contains the
    // main method which gets called as soon as this application
    // begins to run.
    // =========================================================
    class pp extends JFrame implements ActionListener
    // Container of customer objects (one object per customer)
    private Vector customers = new Vector (100);
    // List of names component. (Must specify java.awt in
    // front of List to distinguish the List class in the
    // java.awt package from the List class in the java.util
    // package.)
    private java.awt.List names = new java.awt.List ();
    // Delete and update button components.
    private JButton delete;
    private JButton update;
    // Default constructor.
    public pp ()
    // Assign Contact Manager to title bar of frame window.
    super ("Paper Round Manager");
    // Add a listener that responds to window closing
    // events. When this event occurs (by clicking on the
    // close box in the title bar), save contacts and exit.
    addWindowListener (new WindowAdapter ()
    public void windowClosing
    (WindowEvent e)
    saveCustomers ();
    System.exit (0);
    // Place an empty label in the north part of the frame
    // window. This is done to correct an AWT positioning
    // problem. (One thing that you'll come to realize as
    // you work with the AWT is that there are lots of bugs.)
    JLabel l = new JLabel ();
    getContentPane().add ("North", l);
    // Place the names component in the center part of the
    // frame window.
    getContentPane().add ("Center", names);
    // Create a panel object to hold four buttons.
    JPanel p = new JPanel ();
    JButton b;
    // Add an Insert button to the Panel object and register
    // the current cm object as a listener for button events.
    p.add (b = new JButton ("Insert"));
    b.addActionListener (this);
    // Add a Delete button to the Panel object and register
    // the current cm object as a listener for button events.
    p.add (delete = new JButton ("Delete"));
    delete.addActionListener (this);
    // The Delete button should be disabled until there is at
    // least one contact to delete.
    delete.setEnabled (false);
    // Add an Update button to the Panel object and register
    // the current cm object as a listener for button events.
    p.add (update = new JButton ("Update"));
    update.addActionListener (this);
    // The Update button should be disabled until there is at
    // least one contact to update.
    update.setEnabled (false);
    // Add a Finish button to the Panel object and register
    // the current cm object as a listener for button events.
    p.add (b = new JButton ("Finish"));
    b.addActionListener (this);
    // Add the panel object to the frame window container.
    getContentPane().add ("South", p);
    // Set the background of the frame window container to
    // lightGray (to give a pleasing effect).
    setBackground (Color.lightGray);
    // Set the size of the frame window container to 400
    // pixels horizontally by 200 pixels vertically.
    setBounds (50, 100, 400, 200);
    // Do not allow the user to resize the frame window.
    loadCustomers ();
    // Load all contacts.
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    // Make sure that the frame window is visible.
    setVisible (true);
    public void actionPerformed (ActionEvent e)
    if (e.getActionCommand ().equals ("Delete"))
    delete ();
    else
    if (e.getActionCommand ().equals ("Finish"))
    saveCustomers ();
    System.exit (0);
    else
    if (e.getActionCommand ().equals ("Insert"))
    insert ();
    else
    update ();
    public Insets getInsets ()
    // Return an Insets object that describes the number of
    // pixels to reserve as a border around the edges of the
    // frame window.
    return new Insets (10, 10, 10, 10);
    public static void main (String [] args)
    // Create a new cm object and let it do its thing.
    new pp ();
    private void delete ()
    // Obtain index of selected customer item from the names
    // component.
    int index = names.getSelectedIndex ();
    // If no item was selected, index is -1. We cannot update
    // a contact if no contact item in the names component was
    // selected - because we would have nothing to work with.
    if (index != -1)
    // Remove the customer item from the names component.
    names.remove (index);
    // Remove the Customer object from the contacts Vector
    // object.
    customers.remove (index);
    // If there are no more customers ...
    if (customers.size () == 0)
    delete.setEnabled (false);
    update.setEnabled (false);
    else
    // Make sure that the first contact item in the names
    // list is highlighted.
    names.select (0);
    private void insert ()
    // Create an Insert data entry form to enter information
    // for a new contact.
    DataEntryForm def = new DataEntryForm (this, "Insert");
    // If the bOk Boolean flag is set, this indicates the user
    // exited the form by pressing the Ok button.
    if (def.bOk)
    // Create a Customer object and assign information from
    // the form to its fields.
    Customer temp = new Customer ();
    temp.name = new String (def.name.getText ());
    temp.publication = new String (def.publication.getText ());
    temp.address = new String (def.address.getText ());
    temp.round = new String (def.round.getText ());
    temp.phone = new String
              (def.phone.getText ());
    // Add a new customer item to the names component.
    names.add (temp.publication + ", " + temp.address);
    // Add the Customer object to the contacts Vector
    // object.
    customers.add (temp);
    // Make sure that the Delete and Update buttons are
    // enabled.
    delete.setEnabled (true);
    update.setEnabled (true);
    // Destroy the dialog box.
    def.dispose ();
    // Make sure that the first customer item in the names list
    // is highlighted.
    names.select (0);
    // ===========================================================
    // Load all customers from customers.dat into the customers
    // Vector object. Also, make sure that the last name/first
    // name from each contact is combined into a String object and
    // inserted into the names component - as a contact item.
    // ===========================================================
    private void loadCustomers ()
    FileInputStream fis = null;
    try
    fis = new FileInputStream ("customers.dat");
    DataInputStream dis = new DataInputStream (fis);
    int nCustomers = dis.readInt ();
    for (int i = 0; i < nCustomers; i++)
    Customer temp = new Customer ();
    temp.name = dis.readUTF ();
    temp.publication = dis.readUTF ();
    temp.address = dis.readUTF ();
    temp.round = dis.readUTF ();
    temp.phone = dis.readUTF ();
    names.add (temp.publication + ", " + temp.address);
    customers.add (temp);
    if (nCustomers > 0)
    delete.setEnabled (true);
    update.setEnabled (true);
    catch (IOException e)
    finally
    if (fis != null)
    try
    fis.close ();
    catch (IOException e) {}
    // Make sure that the first customer item in the names list
    // is highlighted.
    names.select (0);
    // ========================================================
    // Save all customer objects from the contacts Vector object
    // to customers.dat. The number of contacts are saved as an
    // int to make it easy for loadCustomers () to do its job.
    // ========================================================
    private void saveCustomers ()
    FileOutputStream fos = null;
    try
    fos = new FileOutputStream ("customers.dat");
    DataOutputStream dos = new DataOutputStream (fos);
    dos.writeInt (customers.size ());
    for (int i = 0; i < customers.size (); i++)
    Customer temp = (Customer) customers.elementAt (i);
    dos.writeUTF (temp.name);
    dos.writeUTF (temp.publication);
    dos.writeUTF (temp.address);
    dos.writeUTF (temp.round);
    dos.writeUTF (temp.phone);
    catch (IOException e)
    MsgBox mb = new MsgBox (this, "PP Error",
    e.toString ());
    mb.dispose ();
    finally
    if (fos != null)
    try
    fos.close ();
    catch (IOException e) {}
    private void update ()
    // Obtain index of selected customer item from the names
    // component.
    int index = names.getSelectedIndex ();
    // If no item was selected, index is -1. We cannot update
    // a customer if no customer item in the names component was
    // selected - because we would have nothing to work with.
    if (index != -1)
    // Obtain a reference to the Customer object (from the
    // customer Vector object) that is associated with the
    // index.
    Customer temp = (Customer) customers.elementAt (index);
    // Create and display an update entry form.
    DataEntryForm def = new DataEntryForm (this, "Update",
    temp.name,
    temp.publication,
    temp.address,
    temp.round,
    temp.phone);
    // If the user pressed Ok...
    if (def.bOk)
    // Update the customer information in the customers
    // Vector object.
    temp.name = new String (def.name.getText ());
    temp.publication = new String (def.publication.getText ());
    temp.address = new String (def.address.getText ());
    temp.round = new String (def.round.getText ());
    temp.phone = new String (def.phone.getText ());
    // Make sure the screen reflects the update.
    names.replaceItem (temp.publication + ", " + temp.address,
    index);
    // Destroy the dialog box.
    def.dispose ();
    // Make sure that the first customer item in the names
    // list is highlighted.
    names.select (0);
    // ========================================================
    // Class: Customer
    // This class describes the contents of a business customer.
    // ========================================================
    class Customer
    public String name;
    public String publication;
    public String address;
    public String round;
    public String phone;
    // ==========================================================
    // Class: DataEntryForm
    // This class provides a data entry form for entering customer
    // information.
    // ==========================================================
    class DataEntryForm extends JDialog implements ActionListener
    // bOk is a boolean flag. When true, it indicates that
    // the Ok button was pressed to terminate the dialog box
    // (as opposed to the Cancel button).
    public boolean bOk;
    // The following components hold the text that the user
    // entered into the visible text fields.
    public JTextField name;
    public JTextField publication;
    public JTextField address;
    public JTextField round;
    public JTextField phone;
    public void actionPerformed (ActionEvent e)
    // If the user pressed the Ok button, indicate this
    // by assigning true to bOk.
    if (e.getActionCommand ().equals ("Ok"))
    bOk = true;
    // Destroy the dialog box and return to the point
    // just after the creation of the DataEntryForm object.
    dispose ();
    public DataEntryForm (JFrame parent, String title)
    // Call the other constructor. The current constructor
    // is used for insert operations. The other constructor
    // is used for update operations.
    this (parent, title, "", "", "", "", "");
    public DataEntryForm (JFrame parent, String title,
    String name, String publication,
    String address, String round,
    String phone)
    // Initialize the superclass layer.
    super (parent, title, true);
    // Choose a grid bag layout so that components can be more
    // accurately positioned. (It looks nicer.)
    setLayout (new GridBagLayout ());
    // Add appropriate first name, last name, phone, fax, and
    // email components to the current DataEntryForm container.
    // (Remember, DataEntryForm is a subclass of Dialog.
    // Dialog is a container. Therefore, DataEntryForm
    // inherits the ability to be a container.)
    addComponent (this, new JLabel ("Name: "), 0, 0, 1, 1,
    GridBagConstraints.NONE,
    GridBagConstraints.WEST);
    this.name = new JTextField (15);
    addComponent (this, this.name, 1, 0, 1, 1,
    GridBagConstraints.NONE,
    GridBagConstraints.CENTER);
    if (title.equals ("Update"))
    this.name.setText (name);
    addComponent (this, new JLabel ("Publications: "), 0, 1, 1, 1,
    GridBagConstraints.NONE,
    GridBagConstraints.WEST);
    this.publication = new JTextField (15);
    addComponent (this, this.publication, 1, 1, 1, 1,
    GridBagConstraints.NONE,
    GridBagConstraints.CENTER);
    if (title.equals ("Update"))
    this.publication.setText (publication);
    addComponent (this, new JLabel ("Address "), 0, 2, 1, 1,
    GridBagConstraints.NONE,
    GridBagConstraints.WEST);
    this.address = new JTextField (15);
    addComponent (this, this.address, 1, 2, 1, 1,
    GridBagConstraints.NONE,
    GridBagConstraints.CENTER);
    if (title.equals ("Update"))
    this.address.setText (address);
    addComponent (this, new JLabel ("Round No "), 0, 3, 1, 1,
    GridBagConstraints.NONE,
    GridBagConstraints.WEST);
    this.round = new JTextField (15);
    addComponent (this, this.round, 1, 3, 1, 1,
    GridBagConstraints.NONE,
    GridBagConstraints.CENTER);
    if (title.equals ("Update"))
    this.round.setText (round);
    addComponent (this, new JLabel ("Phone Number "), 0, 4, 1, 1,
    GridBagConstraints.NONE,
    GridBagConstraints.WEST);
    this.phone = new JTextField (15);
    addComponent (this, this.phone, 1, 4, 1, 1,
    GridBagConstraints.NONE,
    GridBagConstraints.CENTER);
    if (title.equals ("Update"))
    this.phone.setText (phone);
    addComponent (this, new JLabel (""), 0, 5, 1, 1,
    GridBagConstraints.NONE,
    GridBagConstraints.CENTER);
    addComponent (this, new JLabel (""), 1, 5, 1, 1,
    GridBagConstraints.NONE,
    GridBagConstraints.CENTER);
    JButton b;
    // Add an Ok button to this container.
    addComponent (this, b = new JButton ("Ok"), 0, 6, 1, 1,
    GridBagConstraints.NONE,
    GridBagConstraints.CENTER);
    b.addActionListener (this);
    // Add a Cancel button to this container.
    addComponent (this, b = new JButton ("Cancel"), 1, 6, 1, 1,
    GridBagConstraints.NONE,
    GridBagConstraints.CENTER);
    b.addActionListener (this);
    // Set the size of the dialog window to 250 pixels
    // horizontally by 200 pixels vertically.
    setSize (250, 200);
    // Do not allow users to resize the dialog window.
    setResizable (false);
    // Make sure that the dialog window is visible.
    setVisible (true);
    private void addComponent (Container con, Component com,
    int gridx, int gridy,
    int gridw, int gridh, int fill,
    int anchor)
    // Get the current layout manager. It is assumed to
    // be a GridBagLayout object.
    LayoutManager lm = con.getLayout ();
    // Create a GridBagConstraints object to make it
    // possible to customize component positioning.
    GridBagConstraints gbc = new GridBagConstraints ();
    // Assign the x and y grid positions.
    gbc.gridx = gridx;
    gbc.gridy = gridy;
    // Assign the number of grid blocks horizontally and
    // vertically that are occupied by the component.
    gbc.gridwidth = gridw;
    gbc.gridheight = gridh;
    // Specify the component's resize policy (fill) and
    // the direction in which the component is positioned
    // when its size is smaller than available space (anchor).
    gbc.fill = fill;
    gbc.anchor = anchor;
    // Set the new constraints that the grid bag layout
    // manager will use.
    ((GridBagLayout) lm).setConstraints (com, gbc);
    // Add the component to the container.
    con.add (com);
    // ===========================================================
    // Class: MsgBox
    // This class displays a message box to the user. The message
    // is usually an error message. The user must press the Ok
    // button to terminate the message box.
    // ===========================================================
    class MsgBox extends JDialog implements ActionListener
    public void actionPerformed (ActionEvent e)
    // Terminate the dialog box in response to the user
    // pressing the Ok button.
    dispose ();
    public MsgBox (JFrame parent, String title, String msg)
    // Initialize the superclass layer.
    super (parent, title, true);
    // Store the msg argument in a Label object and add
    // this object to the center part of the dialog window.
    JLabel l = new JLabel (msg);
    add ("Center", l);
    // Create a Button object and add it to the south part
    // of the dialog window.
    JButton b = new JButton ("Ok");
    add ("South", b);
    // Make the current object a listener to events that
    // occur as a result of the user pressing the Ok
    // button.
    b.addActionListener (this);
    // Make sure that the Ok button has the focus.
    b.requestFocus ();
    // Do not allow users to resize the dialog window.
    setResizable (false);
    // Allow the layout manager to choose an appropriate
    // size for the dialog window.
    pack ();
    // Make sure that the dialog window is visible.
    setVisible (true);
    }

  • What's the difference between WorkflowTask and WorkflowJob in SAP MDM API?

    Hi Support,
      Could you tell me the differences between WorkflowTask and WorkflowJob in SAP MDM API? And which can represent a workflow in Workflows tab in MDM Date Manager.
    Thanks & Regards,
    Song

    Hi Songxu,
    Workflow Task: It is the task(workflow steps like Process, Approver etc) assigned to different user during Workflow. User's  use the workflow tabs in Data Manager to view and process workflow tasks. see page 91/654 of Data Manager Guide.
    http://help.sap.com/saphelp_nwmdm71/helpdata/en/4b/72b8aaa42301bae10000000a42189b/MDMDataManager71.pdf
    Workflow Job: Each workflow is invoked as a job that can consist of multiple records that move through the steps of a workflow (how many records are involved into your Workflow) as a group while simultaneously maintaining record-level granularity. Once the job has been launched, it moves automatically from step-to-step and from user-to-user, showing up in the inbound task queue in each useru2019s Workflows tab for disposition and processing.
    Regards,
    Mandeep Saini

Maybe you are looking for

  • Is ReFS on External (e.g., USB) Drives Still Not Supported in Win 8.1?

    I've been running an internal disk drive on ReFS under Windows 8.1 since late last year, and have had nothing but perfect operation from it. I know that originally, when Win 8 came out, it was not possible to format an external USB drive to ReFS.  It

  • Alternative for when validate

    hi, can anyone says an alternative for when validate item because go_block is illegal there.need to execute same thing as in key next when the user click with the mouse

  • Hi abapers

    hi everybody,               i need material regarding reports like how many types of reports, and their applications and implementation.                                                       thanking u,                                                

  • FLICKR DISSAPEARED

    Under the PUBLISHING SERVICES SECTION in the Library Module Im missing my FLICKR module when I hit setup it does not let me add it any ideas?

  • Everytime I attempt to open iPhoto, a message comes up saying, "iPhoto is unable to open this library," and the only option if gives is to quit. How do I get it to open?

    When I select iPhoto to open the application, a message comes up saying, "iPhoto is unable to open this library," and the only option available is to quit. I don't know what library iPhoto is attempting to open, but all I want to do is just start iPh