Beginner's Graphics

Let's say I want to make a board game, for the sake of this question, checkers.
I have an array that represents the CheckerBoard, and Piece objects to represent the Pieces.
What is the best way to visualize this setup so that when a user makes a move (i.e., clicks a valid square to move/jump a piece) the frame updates itself with the new information?
Right now I'm trying to create a Component that takes information from the CheckerBoard then alters its drawing instructions to match the current state of the board. Whenever the user makes a move, the frame will remove and then add the Component, in hopes of drawing a modified board. But right now, this method doesn't seem to work.
Suggestions?

For a grid game like checkers, I'd suggest using a GridLayout, and then create a Square class to represent an individual square. The Square would know how to draw itself based on its current state (e.g. whether there's a piece on it).
Each Square would probably have a reference to a Game object which would hold state relevant to the game as a whole (e.g., whose turn it is), and each square might also (depending on the game) have references to surrounding squares. For example, the square might only have references to squares where a valid move can be made to.

Similar Messages

  • CS5.5 Features

    I"ve seen, watched, and heard a lot of the new features of DW CS5.5. But it's all been geared to the beginner or graphic designers. I haven't been able to find a feature list catered to me, an experienced DW user who spends a large part of his time in codeveiw.
    Frankly I've been thinking of dropping DW since it seems to cater all its developments to the front end. I still use it because I've been a DW user since version 2 (back in the macromedia days). And I'm used to the app and it quirks. But I'm getting damn tired of all this fluff. Anyway...
    Is there a page on this site which details the upgrades to codeview - like has DW FINALLY got debugging? Or better code hinting with js libraries (other then jquery), better support for SVN and support for Git? Things like that.
    Thanks.....

    Hi
    John wrote:-
    I've never seen anyone in these forums come forward with useful suggestions such as you've mentioned in your post.
    Sorry to disagree John, but if you go to the extensions, or the applications sections of the forum you will see many posts, (especially around the time of new version being released) asking for similar features and complaining that dreamweaver is, (or at least in my opinion and those of the posters) now concentrating mainly on the front-end developer/designer.
    This includes the features that help the more common cms's such as wordpress and drupal but are virtually impossible to use with other cms's, and nothing that helps those who develop sites with back-end coding that require such features as stored procedures or transactions using php/mysql, or even the simpler features, (but more secure) like the use of PHP::PDO or MySQLi, (without which stored procedures and transactions do not work).
    Even the use of ''off-line storage' and the cache manifest, (html5 but off-line storage was in IE since version 8) is no simple matter for those who wish to use this feature. Admittedly in a 'discussion' with Scott just after the release of CS5, they where working on, (or at least looking into) implementing these in a future version, so time will tell on that complaint.
    But not to go on too long, I have to agree with the OP, in that dreamweaver does now give the impression of concentrating on the front-end and ignoring the more advanced back end features. I did not purchase CS5 and if this trend continues the 'beauty' of dreamweaver will for me be lost, in that I have to use other editors for the back-end programming, and can no longer do everything in dreamweaver. Even the creation of canvas/svg graphics is not in Fireworks (where it should be) but in Illustrator or Flash, and the integration of a de-bugging feature has been asked for many, many times
    PZ
    www.pziecina.com

  • How do I learn to make truly interactive graphics (beginner)?

    Hello. I would appreciate some guidance to learn how to make truly interactive graphics for the web. I am a beginner, with most of my experience in print design. I am not an experienced high level coder, and the less I have to understand about coding, the better. I am seeking helpful tutorials, books, online courses, etc. that can help me on my way to learning these skills. I have done extensive searching on my own before this post.
    What I want to know is how to create interactive graphics that have several hotspots, timelines, etc. without loading seperate pages. I want people to be able to explore the content of my creation that will be just one page on a larger (wordpress) site. I am not sure if HTML5 with Adobe Edge can do this. I am not sure if HTML5 if the answer. Ideally, I want to use one thing that will work for most browsers and be intuitive for me (an avid Adobe product user) to make.
    I am willing to learn code if I just know where to go, and if it can be made easier to understand for the complex vision I have.
    Any ideas where to start? Thanks in advance.

    javascript is not java.
    So to answer your question: you read a book and try things out.

  • Using illustrator for iOS graphics and frame animations (beginner question)

    Hey there,
    Just want to get some opinions and advice.
    We are developing a sidescolling 2D game and I am creating 2D graphics in illustrator, ...so far so good, at this point in time I have a few characters designed.
    Now for the character poses, positions and frame by frame animations.... hmmmm.
    I have been searching for examples of ways to create character movements and positions in illustrator but as of yet have not found any good examples or explainations.
    Would anyone care to share (or point me to some examples) of workflows you use to create different poses and character postions using illustrator...
    (eg. should I be importing my artwork into flash to use the bone tool? Or should I create each variation in illustrator by copying my character and manipulating)

    Though the people I have talked to are using solely illustrator to do just that!?
    Maybe the people you've talked to just haven't taken opportunity to familiarize themselves with Bones. The artwork for cartooney walking animations can be done fairly easily in a drawing program, using Blends, Transform Again etc. So in many cases it's just not a big deal either way.
    What is the advantage of using just illustrator to create animations, I'm guessing that its because the drawing tools available are superior to flash?
    To me, it's not so much about "superior" drawing tools in a drawing program; it's more about a more complete set of drawing tools and commands. Flash has a Bezier drawing tool that works fine, so you can draw paths with control. But creating Blends on paths is just more convenient to do right on the page, without involving a timeline, keyframes, etc. Brushes and Transform Effect make it easy to repeat a series of objects. Flash's continual on-the-fly autotracing and auto merging of overlapping unselected and ungrouped objects can be cumbersome while drawing.
    See this example. Then click the Construction Notes link below it to view a 2-page PDF that shows how the majority of the artworks was accomplished with just two very simple ArtBrushes used in combination with pathBlends. That kind of stuff is often just easier/quicker to do in a drawing program, release to layers, and then copy/paste or otherwise import to Flash.
    Using Blends in AI for things like this experiment can save alot of tedium and time, as compared to working only with Flash's drawing tools. (Notes here.)
    Some things just can't be done with only Flash's drawing tools. Envelope distortions, for example, can be blended to create frame-by-frame shape tweens that would be difficult to do with just Flash's native tools, as in this experiment. (The animation is embedded on Page 11 of the PDF; you may have to click "Trust this host one time only" in Reader and then click the middle of the page to get it to play, depending on your OS version.)
    But as a general rule whenever using a drawing program in conjunction with Flash, avoid using more than ordinary flat fills and stokes in the drawing program before importing the paths to Flash. If you want to involve grads, shadows, transparency, etc., you'll generally be better off adding those things in Flash. Such effects are not the same constructs in different programs, and will most likley become rasterized in Flash (as is the case in the last example, above).
    So again, it depends on specifically what you are trying to do.
    JET

  • Beginner at photoshop:  how to fade one edge on photo into a solid graphic bar

    I am creating a banner with a photo on the left and I want the edge of the photo to extend to the left and fade from photo to solid graphic bar. I will then be writing text in the color bar for the banner. Does anyone know how to do this? Thanks!

    Make sure your picture is in a layer above the background color. With your picture layer selected (as you can see by the blue highlight in the layers panel), click the mask button (bottom red circle). Then, with the mask selected (see the black stroke around it's icon in the top red circle; it is selected by default), use the gradient tool to paint the mask white to black. White reveals, black conceals. If you need to edit the picture layer, you can click the layer icon (just to the left of the mask icon in the top red circle). If you click the chain icon connecting mask and layer, you can scale/move them independently. Click back where the chain was to re-link them.
    <br />
    <br />
    <a href="http://www.pixentral.com/show.php?picture=1BN5qXvY1lrCHzPGmuR2ngsa0qWal0" /></a>
    <img alt="Picture hosted by Pixentral" src="http://www.pixentral.com/hosted/1BN5qXvY1lrCHzPGmuR2ngsa0qWal0_thumb.gif" border="0" />

  • Graphics Beginner - easy question

    Hi,
    I've got a quick question about a little piece of code I'm doing. To be honest I'm really lost here and don't think that I should be.
    Basically I've got a method called drawCircle(Point2D C, int R) which should draw a circle at centre-point C with radius R.
    Wrong code here:-
    import java.awt.*;
    import javax.swing.*;
    import java.awt.geom.Point2D;
    public class DrawCircle extends JFrame {
         private Container container;
        public DrawCircle() {
            init();
        private void init(){
              container = this.getContentPane();
              container.setLayout(null);
              this.setSize(300,300);
              this.setResizable(false);
              this.setVisible(true);          
        public void paint(Graphics g){
        public void drawCircle(Point2D C, int R) {
                          //need to draw this somehow
             drawOval((int)C.getX() - R, (int)C.getY() - R, R*2, R*2);     
        public static void main(String [] args){
             DrawCircle dc = new DrawCircle();
             Point2D point = new Point(10,10);
             int radius = 10;
             dc.drawCircle(point, radius);
    } My question is:
    How do I get to draw the circle without passing a Graphics argument to drawCircle?
    I must say I'm a little bit lost when the paint method is called and all that.
    Any help is greatly appreciated.
    Chris

    Hey,
    Thanks for your help. Indeed the whole point of not passing a Graphics component threw me so I have got the following which seems to suit my needs. If however I did need to omit the passing of a Graphics component where in the below code would I need to change things? Ignore the fact that I don't really need to pass the radius to drawCircle.
    import java.awt.*;
    import javax.swing.*;
    import java.awt.geom.Point2D;
    import java.io.*;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    public class Question3 extends JPanel {
         private int x, y, r;
        public Question3(int x, int y, int r) {
             this.x = x;
             this.y = y;
             this.r = r;
            setPreferredSize(new Dimension(100, 100));
            setBackground(Color.white);
         public void paintComponent(Graphics g){
              super.paintComponent(g);
              Point2D point = new Point(x,y);
              drawCircle(g,point, r);
        private void drawCircle(Graphics cg, Point2D C, int R) {
             cg.drawOval((int)C.getX() - R, (int)C.getY() - R, R*2, R*2);     
        public static void main(String [] args) throws IOException{
             BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
             try{
                  System.out.println("Enter X coordinate");
                  String xStr = br.readLine();
                  int xIn = Integer.parseInt(xStr);
                  System.out.println("Enter Y coordinate");
                  String yStr = br.readLine();
                  int yIn = Integer.parseInt(yStr);
                  System.out.println("Enter Radius");
                  String rStr = br.readLine();
                  int rIn = Integer.parseInt(rStr);
                  JFrame frame = new JFrame();
                  frame.setTitle("DrawPoly");
                  frame.setSize(350, 250);
                  frame.addWindowListener(new WindowAdapter() {
                         public void windowClosing(WindowEvent e) {
                      System.exit(0);
                  Container contentPane = frame.getContentPane();
                  contentPane.add(new Question3(xIn, yIn, rIn));
                   frame.show();
             catch(NumberFormatException nfe){
                  System.out.println("Number Format Exception");
                  System.exit(0);
    } Regards,
    Chris

  • How-tos in graphic editing?

    I have two questions:
    1,
    I need to know how to add this kind of effect in graphic editing (i.e to  have the reflection of the object itself in the opposite direction).  see this pic
    http://jithonline.com/wp-img/DTSL1.gif
    2,
    How can I add (those smoother looking) high definition "HD" effect to an  image? I have pics taken with non HD camera, and simply want such  effect on them.
    I have Adobe CS4 Suite, and I believe the above two can be accomplished  with one or more of the applications in this suite. But just dont know  how. I'm a newbie in graphics.
    I need the very 1,2,3 basics,
    Help please!

    Thanks Scott, I will give the answer 1 a shot right away!
    On question 2,  pardon me as I'm not a pro. but a beginner. I guess what I was going to say was "image resolution"
    So what I really meant is to edit or transform an image of this level of quality (resolution)
    http://www.statesymbolsusa.org/IMAGES/Statue-of-liberty2.jpg
    to an image of this level of quality
    http://cari373.files.wordpress.com/2010/03/statue-of-liberty-address1.jpg
    I know it may not be a one-click-magic, but the very basics of what to do (in Fireworks or any other of CS4 suite) in refining an image to improve its look

  • [Solved] Choppy Graphics + Unable to Auto Start Gnome

    Edit: Fixed the graphics issue by deleting my xorg conf and downloading my video driver again. Uncommenting fixed the boot up issue. Thanks!
    Alright, I just installed Arch for my first time and I'm only really having two problems. The first problem is that the graphics are extremely laggy. I'm using gnome with a radeon hd4850 and I think the problem is my xorg file.
    Here is my xorg.conf: it mentions the driver and my video card; however, I'm a little unsure that it's actually using my video card. I checked the wiki but I'm not sure what exactly it is I'm supposed to do.
    Section "ServerLayout"
    Identifier "X.org Configured"
    Screen 0 "Screen0" 0 0
    InputDevice "Mouse0" "CorePointer"
    InputDevice "Keyboard0" "CoreKeyboard"
    EndSection
    Section "Files"
    ModulePath "/usr/lib/xorg/modules"
    FontPath "/usr/share/fonts/misc"
    FontPath "/usr/share/fonts/100dpi:unscaled"
    FontPath "/usr/share/fonts/75dpi:unscaled"
    FontPath "/usr/share/fonts/TTF"
    FontPath "/usr/share/fonts/Type1"
    EndSection
    Section "Module"
    Load "glx"
    Load "extmod"
    Load "record"
    Load "dbe"
    Load "dri"
    Load "dri2"
    EndSection
    Section "InputDevice"
    Identifier "Keyboard0"
    Driver "kbd"
    EndSection
    Section "InputDevice"
    Identifier "Mouse0"
    Driver "mouse"
    Option "Protocol" "auto"
    Option "Device" "/dev/input/mice"
    Option "ZAxisMapping" "4 5 6 7"
    EndSection
    Section "Monitor"
    Identifier "Monitor0"
    VendorName "Monitor Vendor"
    ModelName "Monitor Model"
    EndSection
    Section "Device"
    ### Available Driver options are:-
    ### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
    ### <string>: "String", <freq>: "<f> Hz/kHz/MHz"
    ### [arg]: arg optional
    #Option "NoAccel" # [<bool>]
    #Option "AccelMethod" # [<str>]
    #Option "offscreensize" # [<str>]
    #Option "SWcursor" # [<bool>]
    #Option "ignoreconnector" # [<str>]
    #Option "forcereduced" # [<bool>]
    #Option "forcedpi" # <i>
    #Option "useconfiguredmonitor" # [<bool>]
    #Option "HPD" # <str>
    #Option "NoRandr" # [<bool>]
    #Option "RROutputOrder" # [<str>]
    #Option "DRI" # [<bool>]
    #Option "TVMode" # [<str>]
    #Option "ScaleType" # [<str>]
    #Option "UseAtomBIOS" # [<bool>]
    #Option "AtomBIOS" # [<str>]
    #Option "UnverifiedFeatures" # [<bool>]
    #Option "Audio" # [<bool>]
    #Option "AudioStreamSilence" # [<str>]
    #Option "HDMI" # [<str>]
    #Option "COHERENT" # [<str>]
    #Option "ForceLowPowerMode" # [<bool>]
    #Option "LowPowerModeEngineClock" # <i>
    Identifier "Card0"
    Driver "radeonhd"
    VendorName "ATI Technologies Inc"
    BoardName "RV770 [Radeon HD 4850]"
    BusID "PCI:2:0:0"
    EndSection
    Section "Screen"
    Identifier "Screen0"
    Device "Card0"
    Monitor "Monitor0"
    SubSection "Display"
    Viewport 0 0
    Depth 1
    EndSubSection
    SubSection "Display"
    Viewport 0 0
    Depth 4
    EndSubSection
    SubSection "Display"
    Viewport 0 0
    Depth 8
    EndSubSection
    SubSection "Display"
    Viewport 0 0
    Depth 15
    EndSubSection
    SubSection "Display"
    Viewport 0 0
    Depth 16
    EndSubSection
    SubSection "Display"
    Viewport 0 0
    Depth 24
    EndSubSection
    EndSection
    Section "Extensions"
    Option "Composite" "Enable"
    EndSection
    My second problem isn't a big one at all. I simply have to enter xinit /usr/bin/gnome-session each time I boot up the computer. I thought I followed the beginner's guide verbatim but I must have done something wrong. Here is my .xinitrc:
    #!/bin/sh
    # ~/.xinitrc
    # Executed by startx (run your window manager from here)
    # exec gnome-session
    exec xterm
    Thanks ahead of time for all the help, I really appreciate it.
    Last edited by Shazzam6999 (2010-05-12 01:04:05)

    I think you should uncomment "# exec gnome-session"

  • Beginner CSS multiple stylesheet Question...

    Hi,
    I am a complete beginner. I've followed through the Dreamweaver beginner 'Check Magazine' tutorial to create a site and it's straghtforward. My site is small, a tourist guide, basically a three column/main image homepage like the tuotorial and then around 25 pages featuring different places with identical main column and a thinner right column layout. (I've created a template for the 25)
    My question is regarding CSS stylesheets. Now obviously I have used the CSS stylesheet to set the size and background colour etc of my Div Columns in the homepage as in the tutorial. But my 25 pages have different column widths and background colours to the homepage. Do I need to create a seperate stylesheet for each page?
    Or does each div column get a different name on each page? (div#right_column 1,2,3 etc) Or I need to learn another step?
    I've looked in the beginner guides and they all explain one stylesheet, but don't elaborate for when you start adding new pages and want to edit them.
    I know I have a lot to learn! But I don't want to go further learning a bad habit or misunderstanding and wasting a lot of time when a simple answer would really help me at this stage. It's fine if someone knows a good guide or tutorial that covers this that they can link to as well.
    Thanks in advance!

    If I understand this correctly, your home page is the only one that has unique styles.  The other 25 site pages share the same styles.
    Create one external stylesheet for the 25 pages.
    Use embedded CSS on the home page for styles that are specific to that page.
    Embedded CSS goes in the HTML document between the <head> and </head> tags like so.
    <style type="text/css">
    unique page styles go here....
    </style>
    Nancy O.
    Alt-Web Design & Publishing
    Web | Graphics | Print | Media  Specialists 
    http://alt-web.com/
    http://twitter.com/altweb

  • Business Graphics

    Hi Friends,
        Is there any tutorial for webdynpro business graphics? I am a beginner as far as the business graphics is concerned. What is the use of this?
    Please let me know.
    Regards,
    Nathan.

    Hi Nathan,
    Here is a link to the tutorial about "Using Geo Services with Web Dynpro":
    https://www.sdn.sap.com/irj/sdn/downloaditem?rid=/library/uuid/9206ea90-0201-0010-fdaa-f466969d3ce2
    Another tutorial for buisness graphics (not maps):
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/webdynpro/tutorial%20on%20using%20business%20graphics%20in%20web%20dynpro%20applications%20-%2021.htm
    Regards,
    Ramganesan K.

  • Refreshing Graphic using GFW

    Hi there,
    I just started in implementing my first abap programms.
    I created a dynpro with a cl_gui_alv_grid and a cl_gui_gp_pres.
    What I wanted to have was a selection from the cl_gui_alv_grid which makes draw some correspondent lines in cl_gui_gp_pres.
    So far so good, I written a handler for handling doubleclicks, which makes the whole GFW initialization similar to the GFW tutorial in a FORM.
    (http://www.the-blue-orb.com/link/sap-db2/disk1/doc/sap/17/b9677b48ba11d396a100a0c9308b1f/content.htm)
    Works fantastic!
    Then comes my problem: selecting an other entry, I would like to have the graphic refreshed. But nothing happens!
    I get the new values fetched, and the whole GFW initialization is redone by calling the FORM again which uses now the new values.
    Unfortunately the GFW stuff seems cached somehow. It doesn't change at all!
    So I tried to destroy, free this thing before reinitiatlizing it, but then I get a short dump.
    I' am quite sure there must be an easy way, to get this custom control, gfw stuff refreshed, but me as a beginner was not able to find it :-).
    Do you have asimple idea for me?
    Many thanks and best regards!

    Hi Marek,
      Take a look at REFRESH method in CL_ALV_GRAPHICS.
    Sri

  • Problem with a script to remove graphics

    Hello,
    I have tried to build a javascript to remove all graphics whose extension is not ".EPS" (with "EPS" really in upper cases, as it is for Mathtype equations in Word import).
    But It doesn't work and I can't understand why.
    Here is the script:
    //The script intend to remove all graphics whose extension is not ".EPS"
    var myDoc = app.activeDocument;
    var myGraphics = myDoc.allGraphics
    //Remove graphic if graphic extension is different from ".EPS"
    for (var p = 0; p < myGraphics.length; p++) {
        var myImage = myGraphics[p]
        if (CheckExtEps(myImage) != 0){
        myImage.remove ()
    //Compare graphic extension with ".EPS" and return myExtValue = 0 if it matches exactly
    function CheckExtEps(myImage) {
        var  myString = myImage.name
        myExt = myString.substr(myString.lastIndexOf( "." ))
        myExtValue = myExt.localeCompare(".EPS")
        return myExtValue
    When I run this script, ALL the graphics are removed, ".EPS" included.
    I do have ".EPS" graphics in my document and I expected them not to be removed.
    So there is something wrong somewhere, but I don't know what to change.
    Any ideas?
    By the way, I have a more generic question as a beginner:
    I am working with ExtendScript Toolkit. How can I do to check my script step by step?
    For exemple, how can I display my variables values as "myString", "myExt", "myExtValue" at each step?
    Actually, this script is a step for a bigger script I intend to build to deal with Mathtype equations in Word import.
    After not-EPS graphics beeing removed, I wish to relink all remaining equation prewiews to eps in a selected folder, by consecutive order.
    But this is a big piece of scripting to swallow for me, so I'm working slowly, step by step.
    TIA
    Best regards
    Nicolas

    Hello Ariel
    Thank you very much for your help.
    1. I added semicolons at the end of lines, but the script result is the same.
    2. Running line by line, I could see in the Console where is the problem:
    variable "myString" is always undefined.
    Well, I have to get more inside my script...
    Thank's again
    Best regards
    Nicolas
    Nicolas BALBO  
    [email protected]
    22, rue d'Hauteville  75010 PARIS
    Tel : 33 (0)1 42 57 14 31
    Le 18 avr. 2012 à 17:36, Arïel a écrit :
    Re: Problem with a script to remove graphics
    created by Arïel in InDesign Scripting - View the full discussion
    Well, I can't see any semicolons in your script. Maybe that's just the
    email interface, but there should be semicolons at the ends of lines.
    In the ESTK, you can step through a script a line at a time. Just click
    on the downwards pointing arrow instead of the "play" arrow. Each time
    you click, the script will advance one line. In the Console window
    (Windw>Console) you can then type the name of the variable you wish to
    examine.
    Ariel
    Replies to this message go to everyone subscribed to this thread, not directly to the person who posted the message. To post a reply, either reply to this email or visit the message page: http://forums.adobe.com/message/4344039#4344039
    To unsubscribe from this thread, please visit the message page at http://forums.adobe.com/message/4344039#4344039. In the Actions box on the right, click the Stop Email Notifications link.
    Start a new discussion in InDesign Scripting by email or at Adobe Forums
    For more information about maintaining your forum email notifications please go to http://forums.adobe.com/message/2936746#2936746.

  • Hi all ,i need a good documentation for a beginner in WORK FLOW ?

    hi all ,
    i need a good documentation for a beginner in WORK FLOW ?
    please,try to send the attached documents as much as u can apart from giving the weblinks ?
    hope you will send it soon ....
    thanks & regards
    vishnuvardhan k.v.

    Hi
    Developing a simple application using steps "User Decision" and "Mail"
    Basic terminology used in the workflow:
    The workflow definition is the set of rules that determine the path that the process takes. For example, how a purchase requisition is processed, from the initial request to the creation of the purchase order
    A Workflow Instance, which is often simply referred to as the workflow, is a single workflow run. For example, the processing of a single purchase requisition for computers.
    The Tasks are the steps in the process, which have to be performed either by people or automatically by the software. For example, to check for the availability of the spare computers in the company.
    A Work item is the task instance that is performed as a single workflow step. For example, check that there are no spare computers available in the company.
    Agents are the people who process the tasks (via the work items). For example, requisitioner and a member of the purchasing department.
    Container is the place where all the data used in the workflow is collected.
    Binding is the set of rules that define which data is passed to which part of the process.
    Building a simple workflow application
    The central tool for creating, displaying and processing a workflow is the workflow builder (Transaction SWDD). Within the workflow builder you can create all components of a workflow, including all the containers you need for getting the data from one step to another.
    Generally, most of the workflows are started by an event (for example, when a material is created or when a new purchase requisition arrives). You define which data from this event needs to be passed to the workflow via binding.
    However you can also start any workflow directly. Let us create a simple workflow and start the workflow directly, using the testing tools.
    Call transaction SWDD. When the workflow builder is called for the first time, a newly created initial workflow definition appears or else last created workflow appears. In such cases you can opt to create a new workflow by pressing “Create New Workflow”(ctrl + shft + F5). The following screen appears.
    The initial workflow screen has the following parts:
    a. The start of the workflow definition, indicated by .
    b. The end of the workflow definition, indicated by .
    c. The area in which you insert the new workflow definition is indicated by .
    Now select the undefined step and select Create step or double click the undefined step. Now among the different steps chose the User Decision by double clicking on it.
    Developing a simple application using steps "User Decision" and "Mail"
    Previous
    Now enter the title for the user decision “ Please make a decision”. Also enter the decision texts as Approve and Reject. On pressing enter, the outcome values default to the Decision texts but you can specify your own names, if desired. Now we need to select the agent. Agent is the person to whom the work item needs to be sent.. Since this is just a beginning, we would hardcode the user name. Select the User from the drop down list and enter the user name to whom the work item needs to be sent. In general, this type of agent assignment is not done. Agents are generally assigned using the expression, agent assignment rule or organization object (job, position etc.).
    Now select Transfer and to graphic button. Following screen appears:
    Now we need to include a mail step to be sent to the requestor. Now select the line “Approve” and do a right click. Different options on shown on the context menu. Select Create.
    Now select the step “Send Mail” from the list.
    Developing a simple application using steps "User Decision" and "Mail"
    ...Previous
    Now enter the subject and the body of the message for the mail to be sent.
    Do not change the recipients. Our mail is intended for the persons who triggered this workflow. &_WF_INITIATOR& contains the value who executed the workflow. Since this is a test object, we are using &_WF_INITIATOR&. But we wouldn’t be using this variable in real time scenarios. We would discuss about this in the coming documents.
    Now select Transfer and to graphic button.
    A popup appears requesting for the abbreviation and the name for this task. Enter the same and press enter.
    Now enter the package as local object and press enter.
    Follow the steps 5 through 9 for the step “Reject”. The following screen appears:
    Press SAVE to save the workflow application. You need to enter an abbreviation and name for your workflow as shown below. You can change any of these at any later point. After saving, a number is assigned to your workflow starting with WS, as shown below.
    Developing a simple application using steps "User Decision" and "Mail"
    ...Previous
    To execute the workflow, activate it by choosing the activate button.
    Test the workflow by choosing Test. The following screen appears.
    Now choose Execute to start the workflow.
    Now the recipient would receive a work item in his SAP® inbox (Transaction SBWP).
    Now execute the work item by pressing “Execute”. The following screen appears:
    Choose one among Approve or Reject as part of the user decision. He can select the third option to retain the work item in his inbox and make the decision later. Now suppose that the recipient has chosen one of the first options. Now a mail would be sent to the requestor with the status of his request.
    Creating a Container element
    This document details about creation of a container element in workflow and using it in the step "Mail".
    Pre-requisites:
    It is assumed that the reader of this Tutorial is aware of creating a workflow definition with the step “Mail”. If not, please go through the document on creating the same available, by clicking here.
    Steps:
    1. Create a workflow definition using the transaction SWDD.
    2. Let’s create a container element for Carrier id. Click on the “Workflow Container” on the left side of the screen (as shown in the screenshot below):
    3. Now double-click on “Double-Click to Create”
    4. Enter the details pertaining to CARRID here.
    5. Click on tab “Properties” and select “Import”.
    6. Click on “Confirm (Enter)”.
    7. Now the element created could be seen on the left side, below the “Workflow Container”.
    Creating a Container element
    Previous
    1. Create a “Mail” step by double-clicking on “Undefined” step in the workflow.
    2. Enter the recipient details in the “Recipients” box.
    3. In the subject line, enter “Carrid value entered is:” and click on “Insert Expression”.
    4. Select the element “Carrid” from the list.
    5. Similarly enter the content in the “Body” area.
    6. Save and activate the application.
    Testing the Workflow application:
    7. Test the workflow by clicking F8.
    8. Enter the value of the Carrid as shown above and press execute.
    9. A mail would be sent to the recipient mentioned earlier with the carrid value entered.
    Condition Step
    Agenda:
    This document details about the steps “Condition”.
    Pre-requisites: It is assumed that the reader of this document has a preliminary understanding of workflow and has worked with the container elements earlier. If not, please go through the first two Tutorials of workflow available in this site. (More details)
    Procedure:
    1. Create a new workflow definition.
    2. Create a container element, CARRID (as demonstrated in tutorial 2).
    3. Now click on undefined step and create the step “Condition”.
    4. Enter the step name of your choice.
    5. We would have the following condition here:
    If carrid = ‘AA’.
    Do this.
    Else.
    Do this.
    Click on “Click here to create a new condition”. Following screen appears.
    Double click on “Carrid”. Next click on “=” and enter the value “AA” in the constant field and press ENTER.
    Enter the outcome names of your choice as shown above.
    Click on “Transfer and go to graphic”.
    As shown above, there are two branches here. One navigates to true, if CARRID = ‘AA’ else the control takes the branch “False”.
    Test the above scenario by inserting mail steps in the above 2 branches and by passing different CARRID values.
    Condition Step
    Agenda:
    This document details about the steps “Multiple Condition”.
    Pre-requisites: It is assumed that the reader of this document has a preliminary understanding of workflow and has worked with the container elements earlier. If not, please go through the first two Tutorials of workflow available in this site. (More details)
    Procedure:
    1. Create a new workflow definition.
    2. Create a container element, CARRID (as demonstrated in tutorial 2).
    3. Now click on undefined step and create the step “Multiple Condition”.
    4. Enter the step name of your choice.
    5. We would have the following condition here:
    If carrid = ‘AA’.
    Do this.
    Elseif carrid = ‘AH’
    DO this.
    Elseif carrid = ‘SQ’
    Do this.
    Else.
    Do this.
    Select the “CARRID” using the F4 help for the comparison basis field.
    Enter the values of the carrid under the Comparison values with the corresponding outcome name (of your choice)
    Double click on “Carrid”. Next click on “=” and enter the value “AA” in the constant field and press ENTER.
    Click on “Transfer and go to graphic”.
    As observed above, there are different branches for each value of CARRID mentioned above.
    Test the above scenario by inserting mail steps in all the branches and by passing different CARRID values.
    Using "Container Operation" step
    Agenda: Usage of step “Container Operation”.
    Pre-requisites: It is assumed that the reader of this tutorial has worked in the concepts that are dealt in earlier tutorials. (click here for more details)
    Scenario: In this tutorial, we would deal about how to work with the step “Container Operation” with an example of calculating the available seats by subtracting occupied seats from the maximum seats at the workflow level.
    Procedure:
    1. Create a new workflow definition using the transaction SWDD.
    2. Create two container elements MaxSeats, Occ_Seats with the “import” property set. You can use the reference fields sflight-seatsmax, sflight-seatsocc for this.
    3. Create another container element AvailableSeats without setting either import or export property as this is calculated within the workflow and used within the workflow. You might use any of the above reference fields as data types.
    4. Define a new step “Container Operation” in the workflow definition by double-clicking on the “Undefined step”.
    5. In this step, we would calculate the available seats from the max seats and seats occupied.
    I would recommend entering all the container elements from the F4 help instead of typing them manually.
    6. Return to the main screen.
    7. Create a mail step after this to send the available seats information.
    8. Test the above functionality by passing some values to the maximum and the seats occupied.
    9. Result would be as follows:
    Triggering Events Programmatically
    Purpose: This document details the procedure in triggering the business object events programmatically.
    Pre-requisites: It is assumed that the reader of this document is aware of the business object concepts and good in ABAP.
    Procedure:
    In this document, we would take an example of the business object BUS1001006 (Material) and the event CREATED. In general, this event is triggered whenever a material is created using a standard procedure like MM01 or any others. Now we would trigger this event from our own programs.
    Following are the screenshots of the business object BUS1001006 and the event CREATED. Go to transaction SWO1 for more information of the business object.
    Double-clicking on the key field parameter gives you technical information of the field.
    In order to trigger an event programmatically, we would use the function module SWE_EVENT_CREATE.
    Following is the sample code to trigger the events programmatically:
    REPORT ZDEMO_TRIGGER_EVENT.
    DATA: KEY LIKE SWEINSTCOU-OBJKEY.
    KEY = '1163'. “ Material Number (hard-coded)
    CALL FUNCTION 'SWE_EVENT_CREATE'
    EXPORTING
    objtype = 'BUS1001006'
    objkey = KEY
    event = 'CREATED'
    CREATOR = ' '
    TAKE_WORKITEM_REQUESTER = ' '
    START_WITH_DELAY = ' '
    START_RECFB_SYNCHRON = ' '
    NO_COMMIT_FOR_QUEUE = ' '
    DEBUG_FLAG = ' '
    NO_LOGGING = ' '
    IDENT =
    IMPORTING
    EVENT_ID =
    TABLES
    EVENT_CONTAINER =
    EXCEPTIONS
    OBJTYPE_NOT_FOUND = 1
    OTHERS = 2
    IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ELSE.
    WRITE 'Event Triggered'.
    ENDIF.
    COMMIT WORK.
    In order to test whether the event is getting triggered or not, we can make use of Event Trace. Switch on the event trace using the transaction SWELS.
    Press ‘Switch On”.
    Now execute the program developed earlier. Now switch-off the event trace using the same transaction SWELS.
    Now go to transaction SWEL. Here you can list out the events triggered in the particular period of time. Here is the event-trace list:
    Deadline Monitoring in SAP Workflow
    A major advantage of workflow is the ability to monitor the workflow steps according to a predefined schedule. Following are different deadlines that can be monitored against each workflow step:
    • Requested Start
    • Latest Start
    • Requested End
    • Latest End
    In this example, we will define a deadline to the User Decision example created earlier (click here). Following is the screenshot of the application developed using the User Decision example:
    We would extend this example to the deadline monitoring.
    In the User Decision step, click on the “latest end” tab.
    By default, No deadline monitoring is active (as seen in the above screenshot).
    Choose the “Work Item Creation” from the list box.
    After selecting “Work Item Creation”, chose an offset of 5 minutes. This means that the work item must be executed within 5 minutes of the creation, if not this would trigger.
    Deadline Monitoring in SAP Workflow
    Enter recipient details to whom the message to be escalated, if the work item is not executed with in 5 minutes after work item creation.
    Save and activate the workflow definition.
    Testing the workflow application:
    • Execute your workflow.
    • Check for the work item in the SAP Inbox. This time do NOT execute the work item.
    • Wait for the deadline to be triggered. After that, a deadline message is delivered to the recipient mentioned in the “Latest End” tab. See the screenshot below.
    Don’t worry if the deadline message doesn’t appear immediately after 5 minutes. This depends on various factors including how the deadline monitoring program is scheduled and also on the availability of the background processors.
    Use SWWA to check how the deadline monitoring program is scheduled in program.
    For example, assume that our work item has been created at 09:10 hrs and the deadline message is expected to trigger at 09:15 hrs. From the above screenshot, it is understood that the background program is scheduled to execute for every 3 minutes. Assume that the last run of the program is at 09:14hrs and the next run is expected at 09:17hrs. So even our deadline expires at 09:15, the deadline message would appear only at 09:17hrs after execution of the background program.
    Some more points
    In our above example, we have used the deadline on the “Work Item” creation time. i.e., 5 minutes after creation time, the deadline message would be sent. Now we would check the other option “Expression”. Here we can mention the date and time, when the deadline message should appear irrespective of the work item creation date/time.
    As seen in the above screenshot, we can provide the target date and time by which the task should be finished. Container elements could be used in this case. Please refer to our example on creation of container elements (click here).
    Personal Substitute in Workflow
    Requirement: Need to have at least one substitute who can act upon work items in your absence.
    Important: The appointed substitute would be able to see all your work items. A substitute cannot be assigned for only particular area of organization or any other item. So need to ensure that the substitute have the necessary authorizations to act upon the work items.
    Procedure:
    1. Go to SAP Business Work Place (TCode: SBWP)
    2. Now from the menu bar, select Settings à Workflow settings à Maintain Substitute
    3. Highlight/Select the name on the window, in this case SAPDEV02 and click on “Create Substitute”.
    4. List of users available in the system are displayed.
    5. Select the required substitute user name. Following screen appears.
    Validity field describes about the period in which the setting would be active. Note that the dates on the screen would range from the current date to 31st Dec 9999.
    Regarding the checkbox “Substitution active”, it is advised to leave this checkbox unchecked for system performance reasons. A check in this box indicates that the substitution is “permanent” and if left unchecked it is treated as “as-needed”. A permanent substitute will automatically receive the primary users work items in their own box. In the case of “as-needed”, substitute must manually adopt the work items from the primary user’s inbox.
    6. Save the entries
    7. Click Enter to leave the screen.
    Adopting a Substitute in Workflow
    If you have been designated as an “as-needed” substitute, you must manually adopt the substitution. If you are designated as a “permanent” substitute, the work items would automatically appear in the inbox.
    Before adopting a substitution, there are 19 work items in the inbox. See the screenshot below:
    To adopt a substitution, select Settings à Workflow settings à adopt substitution.
    Select the corresponding User-id (if you have been assigned as a substitute for multiple people, then this option would allow you to select the user name of whom you would to check the work items)
    The corresponding user’s work items would appear in our inbox now.
    You can end the substitution, by selecting settings à Workflow settings à End substitution.
    Note: Substitutes can only adopt work items that are directly routed to the person for whom they are a substitute. If you are a substitute for a user (SAPDEV02) who has been made a substitute for another user (SAPDEV01), you will only see work items for user SAPDEV02 and not of the user SAPDEV01.
    Notification of Work Items via e-Mail
    SAP provides us with a facility of notifying the user via the email address of your choice when there are any pending work items in the SAP Inbox..
    1. Go to Transaction SO13.
    2. Click on Automatic Forwarding tab.
    3. Click on Create icon .
    4. Enter the details in the above screen.
    5. Click ENTER to complete the entries.
    6. Now the notification would be received at the provided email address if there are any pending work items in the inbox.
    Filtering the Work Items in the SAP Inbox using BADI
    This document details about the procedure in filtering some of the work items from the SAP inbox using a BADi.
    Following is the screenshot of the SAP inbox, before implementing BADi:
    The BADi that is used in filtering the work items is WF_BWP_SELECT_FILTER. To implement the BADi, go to transaction SE18. From the menu, select Implementation à Create. (See the screenshot below)
    Enter the implementation name and press ENTER
    Enter any meaningful short text for the implementation and click on the tab “Interface”
    The implementing class, ZCL_IM_BWP_SELECT_FILTER, is automatically proposed. Double click on the implementing class name.
    You are now navigated to the class builder. Now double-click on the method name shown on the screen (see the snapshot below)
    Now let us filter out the work items belonging to the task TS2000066. See the code below:
    Activate the method and also the implementation. In the state of active, you wouldn’t be able to make any changes. To make any changes, we need to deactivate it and then make the changes.
    Now check the inbox and would notice that the work items related to that task are no more appearing.
    To notice the differences, try activating and deactivating the BADi implementation.
    Workflow tutorials with step-by-step and with screenshots are available at http://www.****************/Tutorials/Workflow/Workflow.htm
    http://help.sap.com/saphelp_erp2005vp/helpdata/en/42/c14a9b55103116e10000000a1553f7/frameset.htm
    http://help.sap.com/saphelp_erp2005vp/helpdata/en/c5/e4a930453d11d189430000e829fbbd/frameset.htm
    http://www.sapgenie.com/workflow/
    http://www.sap-img.com/workflow/sap-workflow.htm
    http://help.sap.com/saphelp_47x200/helpdata/en/3d/6a9b3c874da309e10000000a114027/frameset.htm
    http://help.sap.com/printdocu/core/Print46c/en/data/pdf/PSWFL/PSWFL.pdf
    http://help.sap.com/saphelp_47x200/helpdata/en/4a/dac507002f11d295340000e82dec10/frameset.htm
    http://www.workflowing.com/id18.htm
    http://www.e-workflow.org/
    http://web.mit.edu/sapr3/dev/newdevstand.html
    http://www.sap-basis-abap.com/wf/sap-business-workflow.htm
    https://forums.sdn.sap.com/click.jspa?searchID=791580&messageID=2857887
    https://forums.sdn.sap.com/click.jspa?searchID=791580&messageID=2855919
    https://forums.sdn.sap.com/click.jspa?searchID=791580&messageID=2735228
    http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCBMTWFMSTART/BCBMTWFMSTART.pdf
    http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCBMTWFMDEMO/BCBMTWFMDEMO.pdf
    http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCBMTWFMPM/BCBMTWFMPM.pdf
    http://help.sap.com/printdocu/core/Print46c/en/data/pdf/PSWFL/PSWFL.pdf
    debug a workflow.
    This has a step by step procedure :
    http://fuller.mit.edu/workflow/debugging.pdf
    www.erpgenie.com/sap/workflow/debugging.htm
    http://www.erpgenie.com/workflow/debugging.htm?2b5de440

  • Making graphics

    Hi!
    I`m very beginner and I would like to know how can I make models?For example a cube,which I can move in the program?Where can I read about this.I don`t understand the official articles.I use j2sdk1.4.2_08 .Thanks for all help.

    There is an on-line tutorial:
    http://java.sun.com/docs/books/tutorial/2d/index.html
    This book is an introduction to the 2D API:
    Java 2D Graphics, by Jonathan Knudsen, published by O'Reilly.

  • Beginner in need of book recommendation

    I'm a beginner to CS3 Flash and in need of book or tutorial
    recommendations. I have the Flash "Classroom in a Book" and it's
    been somewhat helpful. However, a lot of what I want to do, is
    import parts of a collage print from CS3 photoshop and animate
    them. I am having problems with importing layers from Photoshop and
    animating these layers in Flash. Are there any books or tutorials
    that go into more detail on this aspect of flash? The other book
    that I'm thinking about is Peachpit's Adobe Flash CS3 Professional
    Hands-On Training. Any suggestions?
    Thanks,
    Lou

    quote:
    Originally posted by:
    Ty Gordon
    Hey everyone,
    I've been designing a website for my business (
    http://www.losthorizontreks.com).
    I don't have any previous web design experience and am learning as
    I go. I am happy with the site layout and the way it works, but all
    of the text is in jpeg form, which means search engines are limited
    to the page titles. Is there a way to keep the layout but make the
    text searchable by the engines? Does the question make sense? Any
    help would be greatly appreciated.
    Ty
    Yes, the question makes perfect sense.
    Fireworks is a graphics program. The HTML that Fireworks
    produces is intended for prototypes - quick examples you can show
    people to see if you're on the right track with a design. The
    Fireworks HTML is not robust enough to use for a production site.
    What you want to do is use either a program that's designed for
    creating robust HTML (such as Dreamweaver) or learn to write HTML
    by hand in a text editor. It isn't really that hard.
    What you have now is a mess. It would be impossible to
    maintain. Just looking at your file info%20links.HTML is a
    nightmare. It doesn't need to look like that...and it shouldn't.
    (Also, naming conventions. That %20 is what happens to spaces in
    your file name. It's better to remove spaces or use hyphens
    instead. Underscores are okay, but they tend to get lost if a file
    name is also a link and becomes underlined. Use lowercase for file
    extensions.)
    Even if you have Dreamweaver or another Web authoring
    program, you really ought to learn what it is you're doing. Check
    out
    this
    earlier thread for some recommendations.
    Good luck!

Maybe you are looking for

  • Some mp3s no longer play in itunes 6

    ok this one has me stumped. upgaded my itunes and now some of my music wont play (when it did before). first thing i noticed is that some music icons were changed to quicktime. these would not play even when changing back to itunes (by selecting "ope

  • Screen enhancement in badi's

    Hi all,   I want to do screen enhancement in BADI.I found some badis which are providing the screen enhancements but dont know how to go further. Also i dont know in which transaction this screen will appear. And how to search for the BADI in standar

  • Video out to a projector

    I just bought a fire wire 366mhz clamshell off eBay. Can I hook this laptop up to a video projector? Does it have a video out? I have seen cables for sale on eBay that states they are for some g3 units, is mine equipped for it? Ibook clamshell - 366m

  • Using action attribute of netui:button in WSRP

    In WSRP When I use action attribute of <b>netui:button</b> tag to override the action attribute of the <b>netui:form</b> tag but the button doesnt override the action attribute of netui:form tag. Please tell me the reson and solution for this problem

  • Need help with physical table

    Hello All, I have a table in Oracle database which stores the results of the financial report. Let's call it table R. I imported the table R into physical layer of Administration Tool. The data is stored in the following format: multiple departments