Functional Specs - Please Help

I am very new to SAP FICO. I want to know how do you write a func. spec.  I have searched in this forum but I didn't get enough example. Please help me to know how write a func. spec. in detail. A real time example and how to write is what I am looking for.
Something about functional specs for  reports, user-exits, routines, interfaces and external table definitions with example is higly appreciated.
If you want to email me my email is arun4sap[at]gmail[dot]com.
Your effort will rewards with reward points.

Hello,
I copy pasted a functional spec below.
ITs basically telling the Abapper what exactly has to be done.
The Abapper should know what has to be done by looking at the funcitonal spec alone( usuall they have a million questions after)
Points will be appreciated
Regards,
Zaid
Functional Specification –
DEV ID          Sales tax report
Functional Team          Zaid Azam     
               (phone)
SAP Dev.  Team     (lead)      Zaid Azam      (phone #)
     (member)      (phone #)
Phase / Priority     Phase 1
     Medium
Revisions
Rev. Id     Rev. date     Author     Description
00               Initial release
1     Report definition
Basic Information
Report type 1     A/P
Report type 2     Printed
Language requirem.     
Printer requirement     Local printer / system printer
Paper requirement     Landscape
Source environment:     R/3
Module:     FI
Suggested technique     ALV / other
Triggered:     Manually
Frequency:     On-demand
Volume:     Daily
2     Functional Requirements
Functional Requirements
Selection     Posting Date,  G/l account
Narrative flow     The report should list the all the transactions of the G/l account( all items i.e open and cleared) selected on the initial screen. It should list  the vendor name and number when a G/l transaction is of a vendor
Assumptions / issues     
Should have the capability of being exported to excell
3     Processing logic
Processing logic
Step 1     Enter g/l account (HKONT) on the selection screen and run with or without a date range Or run by a  date range only without specifying a G/L
Step 2     Get the G/L number from BSIS that was selected on the initial screen Or get all the G/ls that had postings in the posting date  ( BUDAT) specified on the initial screen.
Step 3     Get the amount ( WRBTR) from BSIS ( Open and cleared both are in BSIS)
Step 4     Take the Document Number (BELNR) from BSIS and get the vendor number for that doc number  from BSIK ( open item), from BSAK ( cleared) if item is paid.
Step 8     Should get the vendor name from LFA1 for the vendor number from BSIK or BSAK
Step 9     
Step 10     
4     Output
4.1     Layout
FORMAT                                        
G/L     Posting date   Amount         Doc type      Text                         Doc number          Pk     Vendor #     Name
650100     12/03/2006     500     SA     Test for report     19000042342     40     10229      GMC
4.2     Header elements
SAP Field     Report Field                          Comment
BSAK LIFNR,BSIKLIFNR     Vendor number     
LFA1_NAME1        Vendor Name     
BSIS_BUDAT     Posting Date     
BSIS_HKONT     G/l account     
4.3     Line item
SAP Field     Report Field                          Comment
BSIS_WRBTR      amount     
BSIS_BLART               Document type     
BSIS_SGTXT     Item text     
BSIS_BSCHL             Posting Key     
5     Additional topics
Additional topics
Unit Test Suggestions:     Same as the standard SAP report FBL3N. Only addition is the vendor name and number
Security/ Authorizations:     .
Error handling     
Dependencies     
References     
Out of scope requirements     NA

Similar Messages

  • I have a Mac OS 10.6.8. Can't find Library folder or StartUpItems folder. Tried the "Go To Folder" function. Please help.

    I have a Mac OS 10.6.8. I want to change the apps that launch at start-up and can't find Library folder or StartUpItems folder. Tried the "Go To Folder" and "Find" functions. Please help.

    Try double clicking your HD icon, then click on your HD Volume (under devices in the left side bar), then click on Library you should be able to find StartUpItems there.

  • How can i open my imac with mountain lion in 32 bit. With the Mountain Lion, some important softwares are not functioning. Please help !

    How can i open my iMac with mountain lion in 32 bit. With the Mountain Lion, some important softwares are not functioning. Please help !

    Thx for yr reply. maybe i don't express myself very well. i know ML is 64 bit system. and it does not open up my VPN connection (the VPN connection i am talking here is Cisco and it is only in 32 bits) . i was wondering is there a way my macbook air 11 inch first generation can turn back into its original operation system, so that i can use the VPN connection. THX

  • Problem with "Package Spec" please help.

    Hello once again.
    I'm developing a master-detail form, so I'm using a "Package Spec" variable to hold the primary key value from the master form. The primary key value for the master is generated by a sequence.
    Here's the package spec:
    PACKAGE primary_keygen IS
    pkey varchar2(15); 
    END;Now the master table has the following "Before Insert" Trigger .
    CREATE OR REPLACE TRIGGER MASTER_NUM_GEN
    BEFORE INSERT
    ON MASTER
    FOR EACH ROW
    DECLARE
    primary_key_value varchar2(15);
    BEGIN
    select lpad(to_char(ref_gen.nextval), 4,'0')
    into primary_key_value from dual;
    primary_keygen.pkey:='ABC/'||primary_key_value;
    :new.Ref_Number:=primary_keygen.pkey;
    END;For the detail block. I have the following "Before Insert Trigger" to generate the primary key values.
    CREATE OR REPLACE TRIGGER DET1_NUM_GEN
    BEFORE INSERT
    ON DETAIL1
    FOR EACH ROW
    BEGIN
    if :new.M_ref_number is NULL THEN
    :new.M_ref_number:=primary_keygen.pkey;
    ENd if;
    END;Works quite fine if I have only one detail block. But if I have multiple detail blocks. Depending on the user's selection. i.e. After entering data into the master block, the user selects a detail block ('Letter type'- using stacked canvases for this purpose and radio buttons for selecting the view) and then Inserts data into it. here's what I do in the Detail block2.
    CREATE OR REPLACE TRIGGER OREF_NUM_GEN
    BEFORE INSERT
    ON DETAIL2
    FOR EACH ROW
    BEGIN
    if :new.O_ref_number is NULL THEN
    :new.O_ref_number:=pkey_gen.master_key;
    ENd if;
    END;Now the problem is that When I enter one record into detail1, works fine, but for the second time, when I try to insert another record. the master table gets a new reference number (primary key value) while the detail block gets the previous value that was used in the first record!, so that means 'pkey_gen.master_key' is holding the old value, while in my opinion it should hold the new value, I dont know whats wrong here. If I try to insert two consecutive records into the same detail table, I get an error saying "Unique Constraint voilated", becuase the variable is holding the old values.
    And lastly after it inserts the record into the database, I get a dialog box saying, "successfuly inserted 2 records into the database" and when I click ok, the Form closes by itself, any ideas on how to stop this?
    I'm really stuck here. Please help me out on this.
    Thanks.
    Note: I'm using Form6i with Database 10g.
    Message was edited by:
    fahimkhan82

    Hi,
    Maybe the best way to start is to try building a new form from scratch. For simplicity I will assume that you have one master and one detail table. Master table has a primary key and the detail table has a foreign key to the master. Based on this, with the forms you can create a database block based on your master table. Use the wizard. Again using the wizard, create a second block based on the detail table. You'll see a screen to prompt to create a relationship. Create one by selecting the master table and the right foreign key relation. Now take a close look to all triggers automatically created by the form. Also check the "Relations" object found in you master block object tree. Note that the foreight key column in the detail table has the "Copy Value From Item" property set to monitor the master block's primary key.
    This is the basic. You don't need the database triggers, except (in case you want to insert through, say, SLQPlus) the one for the master table, which will look like this:
    CREATE OR REPLACE TRIGGER MASTER_NUM_GEN
    BEFORE INSERT
    ON MASTER
    FOR EACH ROW
    BEGIN
    IF :new.ref_number IS NULL THEN
    select 'ABC/'||pad(to_char(ref_gen.nextval), 4,'0')
    into :new.ref_number
    from dual;
    END IF;
    END;
    Now you have to take care about the inserts in your form. Create PRE-INSERT trigger on the master block.
    IF :master.ref_number IS NULL THEN
    SELECT 'ABC/'||pad(to_char(ref_gen.NEXTVAL), 4,'0')
    INTO :master.ref_number
    FROM dual;
    END IF;
    Run the form and explore different situations to see how the form is keeping the data integrity.
    Compile with Shift+K (incremental). Sometimes forms blow just because not all of the trigers were compiled properly.
    Hope this helps...

  • Pipelined function..please help

    hi all...
    i need a fuction which will split the data n insert into the table...
    i created a fuction like this :
    CREATE OR REPLACE FUNCTION FN_SPLIT(text      IN VARCHAR2 DEFAULT NULL,delimiter      IN VARCHAR2 DEFAULT ' ')
    RETURN SPLIT_TYPE_TABLE PIPELINED
    IS
    PRAGMA AUTONOMOUS_TRANSACTION;
    TYPE ref0 is REF CURSOR;
    myCursor ref0;
    out_rec SPLIT_TYPE := SPLIT_TYPE(null, null);
    --CURSOR MSTFRC IS SELECT * FROM TEMP_SPLIT;
    index_      NUMBER(10,0);
    BEGIN
         BEGIN
              /*index_ := -1;
              cnt:=0;
              l_str:=text;
              loop
    l_n := instr( l_str, delimiter );
    exit when (nvl(l_n,0) = 0);
                   cnt:=cnt+1;
                   INSERT INTO TEMP_SPLIT (ID,NAME)
                             VALUES (cnt,ltrim(rtrim(substr(l_str,1,l_n-1))));
    l_str := substr( l_str, l_n+1 );
    end loop;*/
              Load_Temp_Splitting(text,delimiter);
              open myCursor for select * from temp_split;
              LOOP FETCH myCursor into out_rec.ID,out_rec.NAME;
                   EXIT WHEN myCursor%NOTFOUND;
                   PIPE ROW(out_rec);
              END LOOP;
              CLOSE myCursor;
              RETURN;
    END;
    END FN_SPLIT;
    it created succesfully without errors but when i run this function it showing an error like cannot evaluate pipelined function..
    my requirement is to split the data like 'as,af,er,yt' split this by comma n insert into the table with row id like
    1 as
    2 af
    3 er
    like...
    please help friends....
    thnks in advance...
    lol
    Neethu

    > when i run this function it showing an error like cannot evaluate pipelined
    function.
    And that is one of the most important pieces of the puzzle - the actual error displayed. What is it? (full error, i.e. number + message)
    As for the code in the function. That looks a bit like an ugly hack to me. Why the INSERT into table? Why not simply use a local collection or array?
    And why a pipelined table function specifically?
    The following code demonstrates a string split function:
    SQL> create or replace type TStrings as table of varchar2(4000);
    2 /
    Type created.
    SQL>
    SQL> create or replace function tokenise( cString varchar2, cSeparator varchar2 DEFAULT ',' ) return TStrings AUTHID CURRENT_USER is
    2 strList TStrings;
    3 str varchar2(4000);
    4 i integer;
    5 l integer;
    6
    7 procedure AddString( cLine varchar2 ) is
    8 begin
    9 strList.Extend(1);
    10 strList( strList.Count ) := cLine;
    11 end;
    12
    13 begin
    14 strList := new TStrings();
    15
    16 str := cString;
    17 loop
    18 l := LENGTH( str );
    19 i := INSTR( str, cSeparator );
    20
    21 if i = 0 then
    22 AddString( str );
    23 else
    24 AddString( SUBSTR( str, 1, i-1 ) );
    25 str := SUBSTR( str, i+1 );
    26 end if;
    27
    28 -- if the separator was on the last char of the line, there is
    29 -- a trailing null column which we need to add manually
    30 if i = l then
    31 AddString( null );
    32 end if;
    33
    34 exit when str is NULL;
    35 exit when i = 0;
    36 end loop;
    37
    38 return( strList );
    39 end;
    40 /
    Function created.
    SQL>
    SQL> select tokenise( 'as,af,er,yt' ) from dual;
    TOKENISE('AS,AF,ER,YT')
    TSTRINGS('as', 'af', 'er', 'yt')
    SQL>
    SQL> select * from TABLE( tokenise( 'as,af,er,yt' ) );
    COLUMN_VALUE
    as
    af
    er
    yt
    SQL>

  • Recovery Disks program does not function. Please help to fix

    Greetings everyone,
    I have a Lenova 3000 N100
    model# 0768DKU
    XP sp3
    original factory hardware still installed
    My HDD is nearing its life and I want to get a new one so I was asking how I could restore my computer to factory condition with the new HDD. I was told Lenova Care has the "Create Recovery Media" option.
    However, when I open the program and select "Create Recovery Disks" a window opens saying "Resource required by this application are already in use. Please retry after the other application completes"
    I have no application running. I have restarted the computer twice and still this window displays this message. All of the great thinking Lenova had when they created this distibution method is now trashed. I can proudly say, that my system was totalled by a virus and the built in system restore feature was wonderful and worked as promised. But this assumes that the HDD will function and mine is about to be finished. 
    Is there any shortcut to getting the "Recovery Disks" made without this program. I can see that in the root of the HDD there are folders that contain all of the factory installs but I have no idea what to do.
    Please help and thanks 

    Does your MacBook have a "Core Duo" processor or a "Core 2 Duo" processor.  Lion won't work with the first, only with the second.
    What is the "System" application that you used to back up your Mac?

  • Apple mail changing sort function. Please HELP.

    After a recommended update early last week,email keeps changing sort function. I set for date and keeps changing it to subject.
    PLease help repair this.
    thanks,
    don
    Don

    Hi Carlo,
    My Mail seems to work now.
    I should have done a screen capture to show you something.
    When I was about to send the message in Mail, a notice came up:
    It had 2 mail accounts:
    1. Mail
    2. my new e-mail address
    I think I pressed  Mail (if I remember).
    However, when I just sent another test message, there was no window warning coming up.
    Also, the "new Mail account" has nothing in it like the one that I deleted.
    The one that I deleted had lots of material (messsage, sent message, saved messages etc...) but nothing critical.
    I can live with that.
    The critical point will be when I go to a site and when I want to send a messafge, my Apple Mail account window opens.
    So far, your solution has worked even if the second part of your instructions could not be followed.
    Thanks again,
    Stacey

  • Parameters of a Function Module.Please help

    Hi guys,
    Am using the FM ARCHIVFILE_CLIENT_TO_SERVER to take an file from the presentation server i.e local PC to an application server.
    In this Fm the parameters are source path and destination path,source path being the path to the file in the PC and destination path the path where the file needs to go in the appn server.
    To find the directory in appn server I logged on to Tcode AL11 where I goit the SAP directories.
    I wanna put my file in one of thedse directories.What should I give my file path in the FM as.
    For eg. /usr/sap/BS7/DVEBMGS01/work
    is what I find in AL11 but what path to give in the FM.Will giving this suffice.
    Please help.
    <REMOVED BY MODERATOR>
    Edited by: Alvaro Tejada Galindo on Jun 12, 2008 1:13 PM

    Hi,
    You cannot post the data anywhere in the application server. Just ask path to your client or your onsite coordinator. They will give you the path.
    <REMOVED BY MODERATOR>
    Thanks
    Vikranth
    Edited by: Alvaro Tejada Galindo on Jun 12, 2008 1:13 PM

  • Control Centre is not functioning properly.Please help

    Hi.My Control Centre in my iPhone 4S dosen't respond until i restart my device.Please Help

    Is the cursor in the message text area? Have you already entered any message text when you try to insert your link?

  • Macbook Pro's keyboard and trackpad aren't functioning well, please help, thank you!

    Dear Apple Support and Apple Communities,
    hopefully this question will be easily understood and will be answered with answers that can help, useful and beneficial. I will explain the problem, story that I guess began the problem, specs and information of the Notebook and so on.
    I love products produced by the brand, Apple, but they can get broken, ruined or destroyed. So, I do try my best to take care of devices that I have well. Although, my father bought a Macbook Pro last year, around November or December, 2013(I THINK). I don't think it's very old, maybe 3 - 5 months, but it should be in a good condition. I have dropped it many times, hopefully that won't effect the problem. Now, the problem, the Notebook is a beautiful device that I would love to keep using, but I don't really know how to use it properly and in the CORRECT/RIGHT/GOOD/SAFE way. If possible, can you list methods/ways to do those things? If so, thank you! Anyway, back to the topic, the Notebook's keyboard has a problem, some keys aren't responding, especially the alphabets/letters, I guess some other keys worked because I did the PRAM RESET. Anyway, the trackpad is also not functioning well, sometimes, when I right click the trackpad or when I click the entire surface with one finger(RIGHT CLICK OR SOMETHING ELSE), it would left click, I found a way to fix is, put the Notebook to sleep by closing the cover, hopefully that's alright. Anyway, it all began, I guess, when I was brushing my teeth. I dislike to waste time, so I used the Notebook and brushed my teeth simultaneously. I guess Saliva was being produced because of the acidic substance(TOOTHPASTE)? Anyway, my mouth had a lot of liquid in it, could have been Saliva, water and toothpaste. So, Physics, natural forces, Gravitational force occurred, some of the liquid left my mouth and onto the keyboard. I didn't panic because I think I heard that keyboard could not or did not suck in a lot of liquid, but I did clean it up. Anyway, the Notebook including the keyboard and trackpad were functioning like normal. I guess after three hours, something happened to the Notebook. I think I was using Safari in FULLSCREEN MODE and suddenly an application or software for another application appeared. It was requesting permission for an update, I think. I updated it and suddenly, the Notebook went haywire. Probably not immediately, but I guess the Notebook did go haywire. I tried searching for ways to fix it, but not much could fix or solve the problem. Hopefully your answer-s will fix or solve the problem, thank you.
    Specs :
    MacBook Pro
    13-inch, Mid 2012
    Processor  2.5 GHz Intel Core i5
    Memory  4 GB 1600 MHz DDR3
    Graphics  Intel HD Graphics 4000 1024 MB
    Serial Number (COULD BE DANGEROUS AND RISKY TO BE GIVEN)
    Software  OS X 10.9.2 (13C64)
    Built-in Display
    13-inch (1280 x 800)
    Intel HD Graphics 4000 1024 MB graphics
    Memory (4 GB)
    The Mac contains 2 memory slots, each of which accepts
    a 1600 MHz DDR3 memory module. All memory slots are currently in use.
    INFORMATION
    The Notebook has a few dents, I guess. I tried to open the keys to check for toothpaste or liquids. My brother told me that toothpaste is dense, probably the answer? My other brother told me that the keyboard and/or trackpad are/is "shocked"(LIQUID AND ELECTRICITY, NOT SUCH GOOD COMBINATIONS). Hopefully this is enough to be counted as detailed and informative. Thank you for your time! Take care!

    Take it to an Apple Store for diagnosis and repair. This will not be free, dropping the Mac and dropping liquids on it are not covered by the warranty.

  • MONTH and YEAR functions.  Please help...

    Can anyone tell me why the YEAR and MONTH functions will only accept the format dd-MMM-yyyy (ex. 01-JAN-2009)
    The calendar prompt will only retun the format dd/mm/yyy (ex. 01/01/2009). This renders the calender pretty useless.
    I am really in need of some help on this. Does anyone know how to get the value returned from the calendar in a prompt into a format that can be used by the YEAR and MONTH functions?
    Thank you in advance

    Hi,
    Can you do those things at DB Level.. addition of YEAR and MONTH columns to Table.. because doing CAST to DATE operation will work at DB Level..
    Ex: In Answers if you give YEAR(CAST('01-03-2009' AS DATE)), it is erroring out because default allowed date format of BI is different from the one specified.. Though it is issuing correct SQL which is working at DB level.. donno how to change the default format of BI..
    So, what I can suggest is an alternative, which is at DB level.. if it is apt for you.. then
    Following statement gives you YEAR value..
    TO_NUMBER(TO_CHAR( cast('01-03-2009' as DATE), 'yyyy'), '9999')
    This is the statement taken from Manage Session of BI..
    -Vency

  • Incorrect syntax errors in sql server function. Please help.

    This is my sql server function:
    create function dbo.CleanTheStringAdv (@theString nvar
    char(500), @CleanMode as int) 
    returns nvarchar(500)  
    begin  
    --define variables
    declare @strAlphaNumeric nvarchar(500)  
    declare @i int
    declare @strChar nvarchar(500)
    declare @CleanedString nvarchar(500)
    --initiate values
    set @CleanedString =''  
    set @theString = @theString + ''
    SET @i = 1
    --Determine if we are looking for numeric values only or numbers and letters
    return case @CleanMode
       WHEN 1
       THEN @strAlphaNumeric = '0123456789'
       WHEN 2
       THEN @strAlphaNumeric = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
       WHEN 3
       THEN @strAlphaNumeric = '|0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
       else 0
     end 
    --Search through chars in the string passed to the function
        while (@i <= Len(@theString))
    begin
    @strChar = substring(@theString, @i, 1)
    If (charindex(@strAlphaNumeric, @strChar) <>0)
    --if the current char being reviewed is valid then add it to the new string
    begin
    @CleanedString = @CleanedString + @strChar
    end
    end
    return @CleanedString
    and below are the syntax errors I see when I press F5:
    Msg 102, Level 15, State 1, Procedure CleanTheStringAdv, Line 24
    Incorrect syntax near '='.
    Msg 102, Level 15, State 1, Procedure CleanTheStringAdv, Line 39
    Incorrect syntax near '@strChar'.
    Msg 102, Level 15, State 1, Procedure CleanTheStringAdv, Line 43
    Incorrect syntax near '@CleanedString'.
    Any help is highly appreciated.....

    Here is the full code for the function:
    create function dbo.CleanTheStringAdv (@theString nvarchar(500), @CleanMode as int)
    returns nvarchar(500)
    as
    begin
    --define variables
    declare @strAlphaNumeric nvarchar(500)
    declare @i int
    declare @strChar nvarchar(500)
    declare @CleanedString nvarchar(500)
    --initiate values
    set @CleanedString =''
    set @theString = @theString + ''
    SET @i = 1
    --Determine if we are looking for numeric values only or numbers and letters
    SET @strAlphaNumeric = case @CleanMode
    WHEN 1
    THEN '0123456789'
    WHEN 2
    THEN '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
    WHEN 3
    THEN '|0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
    else 0
    end
    --Search through chars in the string passed to the function
    while (@i <= Len(@theString))
    begin
    set @strChar = substring(@theString, @i, 1);
    If (charindex(@strAlphaNumeric, @strChar) <>0) --if the current char being reviewed is valid then add it to the new string
    begin
    SET @CleanedString = @CleanedString + @strChar;
    end
    END
    return @CleanedString;
    END

  • JTable's setValueAt() function -URGENT please help!!!

    I am using a subclass of the DefaultTableModel for my JTable. The data is in the form of a Vector of vectors. I am catching user input (editing) by implementing the setValueAt() function. The table consists of 1 row, and 4 columns (thats a required limitation). When I edit(change) only one cell of the table, and dont tab out of the cell, I see that the setValueAt() function is not being called, and the model is not being updated. But when I change the cell value and tab out of the cell to the next cell, the setValueAt() function is being called.
    How can I force the setValueAt() function to be called without tabbing out of the edited cell. I need to implement this feature as a user can change a single cell and click the "save" button.
    here is the setValueAt() function implementation.. Could it be that I might have implemented this in error or need to implement some other methods? Any help/pointers will be greatly appreaciated.
    public void setValueAt(Object value, int row, int col)
    String cellValue = "";
         if (value instanceof String)
              cellValue = (String)value;
         Vector tmp = (Vector)dataVector.elementAt(row);
         tmp.setElementAt(cellValue,col);
         fireTableCellUpdated(row,col);
    Thank You in advance

    Seems to me that the problem is to do with when setValueAt() gets called.
    Sounds like you want it to be called when the Cell's editor loses focus.
    One solution would be something like the following to ensure editing stops when focus is lost.
    There may be other less complicated solutions, but this one should work !
    class  MyEditor extends AbstractCellEditor implements TableCellEditor {
        public MyEditor() {
            this.text = new JTextField();
            this.text.addFocusListener(new FocusListener() {
                public void focusGained(FocusEvent e) {
                public void focusLost(FocusEvent e) {
                    stopCellEditing();
        public Component getTableCellEditorComponent(JTable table, Object value,
                                                                               boolean isselected, int row, int col) {
            this.text.setText((String)value);
            return this.text;
        public Object getCellEditorValue() {
            return this.text.getText();
        private JTextField text;
    table.setDefaultEditor(String.class, new MyEditor());

  • HCPL0631 is not functioning properly please help!!

    To adminitrator,
    I am trying to use the HCPL0631 optocoupler for my simulation. However, this optocoupler will not function properly and will not give me a good result.
    I have attached the circuit diagram in the attachment, please let me know what is wrong with my circuit causing the components to fail.
    thank you for your kind attention
    Message Edited by justinycc on 04-11-2009 06:40 AM
    Message Edited by justinycc on 04-11-2009 06:41 AM
    Solved!
    Go to Solution.
    Attachments:
    circuit1.PNG ‏69 KB

    Actually, never mind about that, the model for the HCPL0631 isn't very good. It doesn't actual have a open collector output. It also has a built in VCC of 5V, so the power supply that you are attaching isn't really being used. Your problem is grounding. Multisim constructs mesh current and node voltage equations for simulation and can't do it accurately if you don't specify the ground for your circuit.
    Try adding a ground to the GND terminal of the optoisolator. You should also have a ground attached to the cathode of the optoisolator or neutral wire of the function generator. The GROUND component is in the Master Database in the Sources group and in the POWER_SOURCES family.
    Yi
    Software Developer
    National Instruments - Electronics Workbench Group

  • Date function: urgent : please help

    This is the problem statement.:
    Problem: Given two dates (during the years 1901 and 2999, inclusive), find
    the number of days between the two dates.
    Input: Two dates consisting of month, day, year. For example, the inputs
    '6, 2, 1983' and '6, 22, 1983' represent the date range June 2, 1983 to
    June 22, 1983.
    Output: The number of days between the given dates, excluding the starting
    date and the ending date. For example, there are 19 days between June 2,
    1983 and June 22, 1983; namely, June 3, 4, ..., 21.
    Test Input (3 sets):
    Input Line #1: 6, 2, 1983, 6, 22, 1983
    Output #1: 19
    Input Line #2: 7, 4, 1984, 12, 25, 1984
    Output #2: 173
    Input Line #3: 1, 3, 1989, 3, 8, 1983
    Output #3: 1979
    ==========
    I have a GregorianCalender function that works. But I want to use a basic java function that can solve the above problem.
    regards
    ~m

    Here is the code that uses the Gregorian Funtion. Does anybody know of anything basic that replaces what gregorian does in this case.
    import java.util.*;
    import java.io.*;
    import java.math.*;
    import java.text.*;
    import java.lang.*;
    public class Days {
         static int year1,month1,day1;
         static int year2,month2,day2;
         public static void main(String[] args) throws Exception{
              parse(args);
              GregorianCalendar gc1 = new GregorianCalendar(year1, day1, month1);
              GregorianCalendar gc2 = new GregorianCalendar(year2, day2, month2);
              DateFormat df1 = DateFormat.getDateInstance();
              DateFormat df2 = DateFormat.getDateInstance();
              try {
                   Days ds = new Days();
                   ds.getDays(gc1, gc2);
                   System.out.println("Output #: " + (ds.getDays(gc1, gc2) - 1));
              } catch (java.lang.IllegalArgumentException e) {
                   System.out.println("Unable to parse");
         // validate input values,
              // if input parameters are not correct and not in a proper format
              // then throw an exception
         private static void parse(String[] args) throws Exception{
              boolean flag = true;
              if(args == null) output();
              if(args != null && args.length != 2) output();
              validate(args);
              return;
         private static void output() throws Exception{
                   throw new Exception("Input arguments are not correct. You should pass "+
                                            "two input dates with a space such as 1901,1,1 2999,1,1");
         private static void validate(String[] args) throws Exception{
              String arg1 = args[0];
              String arg2 = args[1];
              System.out.println(arg1);
              System.out.println(arg2);
              java.util.StringTokenizer tokenizer = new StringTokenizer(arg1,",");
              if(tokenizer.countTokens() < 3) output();
              String year1AsString = tokenizer.nextToken(",");
              String month1AsString = tokenizer.nextToken(",");
              String day1AsString = tokenizer.nextToken(",");
              year1 = getInt(year1AsString,4);
              month1 = getInt(month1AsString,2);
              day1 = getInt(day1AsString,2);
              java.util.StringTokenizer tokenizer2 = new StringTokenizer(arg2,",");
              if(tokenizer2.countTokens() < 3) output();
              String year2AsString = tokenizer2.nextToken(",");
              String month2AsString = tokenizer2.nextToken(",");
              String day2AsString = tokenizer2.nextToken(",");
              year2 = getInt(year2AsString,4);
              month2 = getInt(month2AsString,2);
              day2 = getInt(day2AsString,2);
         private static int getInt(String string, int maxLimit) throws Exception{
              if(string.length() > maxLimit) output();
              int temp = 0;
              try{
                   temp = Integer.parseInt(string);
              }catch(NumberFormatException e){
                   output();
              return temp;
         public int getDays(GregorianCalendar g1, GregorianCalendar g2) {
              int elapsed = 0;
              GregorianCalendar gc1, gc2;
              if (g2.after(g1)) {
                   gc2 = (GregorianCalendar) g2.clone();
                   gc1 = (GregorianCalendar) g1.clone();
              } else {
                   gc2 = (GregorianCalendar) g1.clone();
                   gc1 = (GregorianCalendar) g2.clone();
              gc1.clear(Calendar.MILLISECOND);
              gc1.clear(Calendar.SECOND);
              gc1.clear(Calendar.MINUTE);
              gc1.clear(Calendar.HOUR_OF_DAY);
              gc2.clear(Calendar.MILLISECOND);
              gc2.clear(Calendar.SECOND);
              gc2.clear(Calendar.MINUTE);
              gc2.clear(Calendar.HOUR_OF_DAY);
              while (gc1.before(gc2)) {
                   gc1.add(Calendar.DATE, 1);
                   elapsed++;
              return elapsed;
    ~m

Maybe you are looking for

  • Itunes songs dont work

    Hi, I bought on itunes Justin Biebers new album and 6 songs from the album does not work on my iphone. They do work on computer in itunes but when I synchronise PC and Iphone the Itunes tells me that "6 itunes could not be synced. See itunes for more

  • Problem with websites

    ok so when I first setup osx server the websites worked as far as accessing the profile manager.   But I change access type to allow vpn, which is why I got this.  Now I cant click on profile can it just says safari cannot connect.  but typing in loc

  • Outbound idocs failed

    Sending out material master extended the idoc MATMAS03 Created one segment with one field added it to the idoc populated that segment in the Customer Exit 'CAll function 002' of FM:Masteridoc_create_matmas On sending the materials via bd10 I get erro

  • Edge Animate Installed as Trial?

    I am an Adobe CC subscriber. Today when I updated my apps, it showed Edge Animate installed as a 30 Day trial. As a CC subscriber, shouldn't it just be full version activated?

  • 2 vs 1 instance of WLS ?

    Greetings !!! Leaving other parametes same, would 2 instances of WLS with smaller values of Heap size, executeThreadCount, DBConnections etc. each would provide better perfrormance than one instances of WLS with higher number for these paramaters ? H