Data security (Data from SAP BW) for AD users

Hi  All,
I have a scenario.
BO env : Business Objects 3.1 Sp3
Sap Integration kit Sp3
My target is to implement AD SSO & also provide data security for data from SAP BW. Currently there are no roles & authorization defined in the sap System. My plan was
Step 1:-  Implement AD SSO in Business Objects
Step 2:  Map the AD users in SAP system
Step 3:- Crate roles in SAP System
Step 4:-  Assign the users roles
Steps 5:- (Not sure) :-  Map the users (Now in SAP) to BO & then aliases them with the users from AD.
Pleas let me know if this would be correct approach... if not please suggest.... I am kind of new to SAP BO integration with experience in BO admin

Step 1: Setup Windows AD SSO on your BOBJ server
Step 2: Import Windows AD groups in BO
Step 2-  Setup Server-side SNC between BO and your SAP system
Step 3:- Create roles in SAP System and import them in BO
Step 4:-  Assign SAP users the created roles
Step 5: - In the CMC create SAP aliases for your Windows AD accounts
Step 6: - Setup your reports and/or universe connections to use SSO.
For more information on server side SNC check the installation guide of the integration Kit.
Regards,
Stratos

Similar Messages

  • How to handle data that got from SAP by Webservice?

    Hi, Gurus.
    I am working on IFbA with ABAP and Adobe LiveCycle Designer.
    I've developed a function module in R/3 system and created webservice, connected the WSDL address to the form. The problem is how can i handle data that got from SAP by Webservice?
    It's Ok if i bind the dataconnection node to the form element, but how can i handle data without binding to the form element? I mean that how can i use the data retrieved from Webserivce in the Javascript, please give me some sample code or script method.
    Thanks.

    Hi Yang,
    If you are using Web Service, then the binding will be done automatically.
    It can't grow automatically, what else should i do to achieve this?
    1.Select the table(make sure you are not selecting subform) in Hierarchy view
    2. Under table select the Row which is having the required fileds for data
    3. In the Binding of that row, check the checkbox "Repeat Row for each item data" and under that check the Min Count which will set the default row **** to 1
    Regards,
    Sachin

  • How to delete master data of materials from sap tables

    how to delete master data of materials from sap tables...its needed now.
    i know its not recommended but still we need to do this. give me the best possible approach.
    regards,
    suneetha

    Hi,
    I would suggest you not to write your own code to delete the entries.
    BAPI_MATERIAL_DELETE, this would mark all materials selected for deletion. But still the material would exist in SAP.
    Another solution: Delete a material manually and in another session execute the transaction SM04. This would display the tables which get locked when you do the operation, Then you can write your own code to delete the material numbers from all the related tables.
    Regards
    Subramanian

  • How the data is fetched from the cube for reporting - with and without BIA

    hi all,
    I need to understand the below scenario:(as to how the data is fetched from the cube for reporting)
    I have a query, on a multiprovider connected to cubes say A and B. A is on BIA index, B is not. There are no aggregates created on both the cubes.
    CASE 1: I have taken RSRT stats with BIA on, in aggregation layer it says
    Basic InfoProvider     *****Table type      ***** Viewed at      ***** Records, Selected     *****Records, Transported
    Cube A     ***** blank ***** 0.624305      ***** 8,087,502      ***** 2,011
    Cube B     ***** E ***** 42.002653 ***** 1,669,126      ***** 6
    Cube B     ***** F ***** 98.696442 ***** 2,426,006 ***** 6
    CASE 2:I have taken the RSRT stats, disabling the BIA index, in aggregation layer it says:
    Basic InfoProvider     *****Table Type     *****Viewed at     *****Records, Selected     *****Records, Transported
    Cube B     *****E     *****46.620825     ****1,669,126****     6
    Cube B     *****F     ****106.148337****     2,426,030*****     6
    Cube A     *****E     *****61.939073     *****3,794,113     *****3,499
    Cube A     *****F     ****90.721171****     4,293,420     *****5,584
    now my question is why is here a huge difference in the number of records transported for cube A when compared to case 1. The input criteria for both the cases are the same and the result output is matching. There is no change in the number of records selected for cube A in both cases.It is 8,087,502 in both cases.
    Can someone pls clarify on this difference in records being selected.

    Hi,
    yes, Vitaliy could be guess right. Please check if FEMS compression is enabled (note 1308274).
    What you can do to get more details about the selection is to activate the execurtion plan SQL/BWA queries in data manager. You can also activate the trace functions for BWA in RSRT. So you need to know how both queries select its data.
    Regards,
    Jens

  • How the data is fetched from the cube for reporting

    hi all,
    I need to understand the below scenario:(as to how the data is fetched from the cube for reporting)
    I have a query, on a multiprovider connected to cubes say A and B. A is on BIA index, B is not. There are no aggregates created on both the cubes.
    CASE 1:  I have taken RSRT stats with BIA on, in aggregation layer it says
    Basic InfoProvider     *****Table type      ***** Viewed at          ***** Records, Selected     *****Records, Transported
    Cube A     *****             blank                 *****           0.624305         *****          8,087,502        *****             2,011
    Cube B     *****                     E   *****                      42.002653  *****                  1,669,126            *****                    6
    Cube B     *****                     F  *****                     98.696442    *****                  2,426,006       *****                    6
    CASE 2:I have taken the RSRT stats, disabling the BIA index, in aggregation layer it says:
    Basic InfoProvider     *****Table Type     *****Viewed at     *****Records, Selected     *****Records, Transported
    Cube B     *****E     *****46.620825     ****1,669,126****     6
    Cube B     *****F     ****106.148337****     2,426,030*****     6
    Cube A     *****E     *****61.939073     *****3,794,113     *****3,499
    Cube A     *****F     ****90.721171****     4,293,420     *****5,584
    now my question is why is here a huge difference in the number of records transported for cube A when compared to case 1. The input criteria for both the cases are the same and the result output is matching. There is no change in the number of records selected for cube A in both cases.It is 8,087,502 in both cases.
    Can someone pls clarify on this difference in records being selected.

    Hi Jay,
    Thanks for sharing your analysis.
    The only reason I could think logically is BWA is having information in both E and F tables in one place and hence after selecting the records, it is able to aggregate and transport the reords to OLAP.
    In the second case, since E and F tables are separate, aggregation might be happening at OLAP and hence you see more number of records.
    Our Experts in BWA forum might be able to answer in a better way, if you post this question over there.
    Thanks,
    Krishnan

  • Secure FTP from SAP

    Hi,
    How do you handle secure FTP from SAP without using scripting ?
    Is it possible to set up your RFC destination using the SSL option under the Logon/Security Tab ?
    Or is there another method ?
    Cheers
    Colin.

    Check out - Call   RSFTP020
    Here is an example of
    how to FTP a file from the Application server to a remote server using standard SAP functions.
    REPORT ZKBTST32 LINE-SIZE 132.
    Test SAP FTP functions
    DATA: BEGIN OF MTAB_DATA OCCURS 0,
    LINE(132) TYPE C,
    END OF MTAB_DATA.
    DATA: MC_PASSWORD(20) TYPE C,
    MI_KEY TYPE I VALUE 26101957,
    MI_PWD_LEN TYPE I,
    MI_HANDLE TYPE I.
    START-OF-SELECTION.
    MC_PASSWORD = 'password'.
    DESCRIBE FIELD MC_PASSWORD LENGTH MI_PWD_LEN.
    *-- FTP_CONNECT requires an encrypted password to work
    CALL 'AB_RFC_X_SCRAMBLE_STRING'
    ID 'SOURCE' FIELD MC_PASSWORD ID 'KEY' FIELD MI_KEY
    ID 'SCR' FIELD 'X' ID 'DESTINATION' FIELD MC_PASSWORD
    ID 'DSTLEN' FIELD MI_PWD_LEN.
    CALL FUNCTION 'FTP_CONNECT'
    EXPORTING
    USER = 'userid'
    PASSWORD = MC_PASSWORD
    HOST = 'servername'
    RFC_DESTINATION = 'SAPFTP'
    IMPORTING
    HANDLE = MI_HANDLE
    EXCEPTIONS
    NOT_CONNECTED = 1
    OTHERS = 2.
    CHECK SY-SUBRC = 0.
    CALL FUNCTION 'FTP_COMMAND'
    EXPORTING
    HANDLE = MI_HANDLE
    COMMAND = 'dir'
    TABLES
    DATA = MTAB_DATA
    EXCEPTIONS
    TCPIP_ERROR = 1
    COMMAND_ERROR = 2
    DATA_ERROR = 3
    OTHERS = 4.
    IF SY-SUBRC = 0.
    LOOP AT MTAB_DATA.
    WRITE: / MTAB_DATA.
    ENDLOOP.
    ELSE.
    do some error checking.
    ENDIF.
    CALL FUNCTION 'FTP_DISCONNECT'
    EXPORTING
    HANDLE = MI_HANDLE
    EXCEPTIONS
    OTHERS = 1.
    Hope this helps you,
    CHeers,
    THomas

  • No data to retrieve in Query 1 for particular User

    Error: No data to retrieve in Query 1 for particular User
    Hello,
    We have webi report in 3.1 version which is running fine in Infoview for particular user.
    But when same report is send into Inbox of other user and if user try to run it in infoview it is giving below error.
    "No data to retrieve in Query 1"
    All the security and  group member level settings for both the user are exactly same. What could be the reason for this behaviour.
    Thanks

    Can you please check user is part of which group in enterprise receipts group.
    Also please check dynamic receipts tab of publication where data can be filtered
    Thanks,
    Swapnil

  • Hide Unit price from sales order for sales user without change authorization of document setting

    Hi all expert
    Hide Unit price from sales user without change authorization of document setting.
    I have also refer this note
    SAP B1 2005 Purchas Order,Good Reciept PO'S, and Unit Price Block
    but sill I had not getting my proper solution.
    I want to restrict sales person to see & access unit price. Here I know option of block authorization of document setting but its not good option because , In future ,if sales user wants to changes forms setting in future so Its become problematic for user. so I want do this without restrict user for form setting & only hide unit price table from him/her. also He/her able to access form setting with out unit price.
    Please reply
    Amol Nikam

    Hi Experts,
    Please Tell me Is there any option "Hide Unit price from sales order for sales user without change authorization of document setting"
    Regards/Thanks
    Amol

  • How to extract meta data of documents from SAP R/3

    dear all,
    i`am working in aproject where we connect the documents for SAP R/3 applications.we maintain our own repository for that purpose.it may be in bound or out bound according to customer needs.the meata data related to the documents is stored in SAP.our requirement now is to have that metadata available in our repository .can any one guide me how to write ABAP code for extracting meata data from SAP and enable even nonSAP users to have the access for the documents.
    thanks in advance
    ravi

    Hi,
    One way to do this is probably set a connection between SAP Database and an external database and store the meta data into external database from where a non-sap user will have an eccess to the data.
    Steps required are :
    1. we have to involve basis team also in that.
    2. they will make one entry
    in DBCON table
    (that entry will point to secondary database/external database)
    (suppose the name of this secondary connection is HRCON)
    3. Also they will make connection string
    in application server.
    4. After that,
    we should have
    the table definition in SAP dd dictionary
    and also
    the same defintion
    in the external database. 
    5. now in abap code,
    we have to use like this.
    DATA: mydbcon(30) TYPE c.
    mydbcon = 'HRCON'.
    INSERT ydev_msg_cur CONNECTION (mydbcon)
    FROM msg_cur .
    <b>Hope this helps.
    Please mark helpful answer.</b>
    Regards,
    Amit Mishra

  • Vendor data - intial download from SAP R/3

    Dear All ,
    Im facing an issue during download of Vendor data from SAP R/3 to SAP CRM 5.0 system.
    Now we have done all settings in R/3 and CRM as per Note 883162 , but we are seeing that "NO Bdocs" are generated during initila download of Vendor data  (but inbound queues are generated in CRM )
    My question is in txn PIDV in SAP R/3 system .
    What should we enter for "Role Category " field in the PIDV transaction ??
    Please help , i have go-live on 13th July and im not finding a solution for this ...
    Regards
    Dinesh

    Hi
    Please check the following points.
    1. Please check the settings that you maintained in the table CRMSUBTAB in ECC. You need to have an entry as follows:
    User: CRM
    Object: VENDOR_MAIN
    U/D : DOWNLOAD
    Object Class: VEND ( & not BUPA for this entry)
    Function Module: PI_BP_VENDOR_MAIN_EXTRACT
    The other entry (for upload) has similar but different values. (Refer to the OSS note 883162.)
    2. Check if you have applied any filter settings in CRM for the adapter object VENDOR_MAIN.
    Regards,
    Srini.

  • How data  is replicated from SAP R/3 to SAP BW

    Hi,
        I have to replicate datasource from SAP R/3 ECC 6.0
    TO  SAP BW.
      Please, help me in this regards
    Thks in advance
    - Mubeen.

    hi,
    For replication of data from Sap R/3 to BW once the data source is created, go to RSA6 and check whether the data source exist there and in which subtree down the hierarchy. Then got to SAP BW and in Modeling -> source system tab right  click on the appropriate client where the data source is present and click on replicate data source. This will get ur data source in BW system and u can check it in  Modeling -> Data Source tab under hte same subtree.

  • Fetch the data at runtime from SAP

    Hi All,
        There is a requiremnt that i need to implement?
    I will get a file and then i will process that file in XI and at runtime i need to fetch the data from SAP and then generate the output.
    Suppose for Ex:
         I am geting a file containing a business partner and then i need to check in SAP whether the business partner exist or not and the other datils of that business partner from SAP and then i need to proceess the file with that details and thus generating the output.
    So what all the things that i may need for this scenerio?
    How can i achive this?
    I hope i can achive this by BPM, if yes then can anyone let me know the steps that i need to follow for this?
    I will be highly oblidge for your support...
    Many Thanks,
    JAY

    Hi Jay,
    R u using any RFC for this scenario.
    If u r using RFc then u can achieve this using BPM or without BPM.
    Just refer the below links for more detail which has the same requirement.
    File-RFC-File without BPM:
    https://www.sdn.sap.com/irj/sdn/wiki?path=/display/xi/file-rfc-file%28without+bpm%29&
    With BPM.
    /people/arpit.seth/blog/2005/06/27/rfc-scenario-using-bpm--starter-kit
    u can also do it with RFC lookup:
    •     RFC lookup using JCO (without communication channel)
          /people/sravya.talanki2/blog/2005/12/21/use-this-crazy-piece-for-any-rfc-mapping-lookups
    •     RFC lookup with communication channel.
                     /people/alessandro.guarneri/blog/2006/03/27/sap-xi-lookup-api-the-killer
    Thnx
    Chirag

  • Need to send data as files from SAP to other systems.

    I need some code which will be useful to me. I fetched data from sap to internal tables. Now, the data needs to be sent to other systems (Informatica or so..) as files. Pl. anyone send me a sample code which i can use in my program.
    I will try to reward points to people who will be able to help me.

    Hi, Pl. find the required code which might be useful for ur question.
    Get the data for Userid(l_user) & password(l_pwd) & host string(l_host).
    DATA: l_slen     TYPE i,
          l_error,
          l_pwd(30)  TYPE c.
    CONSTANTS: c_dest TYPE rfcdes-rfcdest VALUE 'SAPFTP',
               c_key  TYPE i              VALUE 26101957.
    connect to ftp server
      l_slen = STRLEN( l_pwd ).
      CALL FUNCTION 'HTTP_SCRAMBLE'
        EXPORTING
          SOURCE      = l_pwd
          sourcelen   = l_slen
          key         = c_key
        IMPORTING
          destination = l_pwd.
      CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
        EXPORTING
          text = 'Connect to FTP Server'.
    To Connect to the Server using FTP
      CALL FUNCTION 'FTP_CONNECT'
        EXPORTING
          user            = l_user
          password        = l_pwd
          host            = l_host
          rfc_destination = c_dest
        IMPORTING
          handle          = w_hdl
        EXCEPTIONS
          OTHERS          = 1.
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                   WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
    Get the path to which the data file needs to be moved (w_outfile).
      PERFORM download_to_ftp TABLES it_coacode USING w_outfile.
    FORM download_to_ftp TABLES it_tab
                         USING l_string TYPE char64.
      CALL FUNCTION 'FTP_R3_TO_SERVER'
        EXPORTING
          handle         = w_hdl
          fname          = l_string
          character_mode = 'X'
        TABLES
          text           = it_tab[]
        EXCEPTIONS
          tcpip_error    = 1
          command_error  = 2
          data_error     = 3
          OTHERS         = 4.
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4
                RAISING invalid_output_file.
      ENDIF.
    ENDFORM.                    " download_to_ftp
    Pl. award points if it has solved ur problem.

  • Data extract/convert from SAP system and load to Unix system - Urgent

    Hi,
    I have a requirement that I need to extract data from SAP and each data field will have some conditions and need to map/Load it to the Legacy Unix system.
    there are four kinds of data objects of HR system, need to extract them individually and map those into Unix system.
    Can anyone please suggest me step-by-step how to go about it....like
    do we need to write a report for that?
    do we need to use Function modules? etc.,
    How to set mappings of that Data to a file?
    How to map that file to Unix system?
    Need to run those on daily basis and after first run, only changed data file need to be loaded. how to do this?
    thanks
    Alankaar
    rewarded with the points.

    Hi
    I can't say this becouse I don't the problem, anyway u have to do it by yourself.
    U should create:
    - a document where u define the file format: data type, size and name of the field of the unix system;
    - a document for the mapping: link between SAP fields and Unix system fields
    Based on these document you'll create a structure on the report:
    DATA: BEGIN OF STR_UNIX_SYSTEM,
                 FIELD1 ...,
                 FIELD2 ...,
                 FIELDN....,
               END  OF STR_UNIX_SYSTEM.
    and the code to transfer the data from SAP to legacy:
    MOVE: <SAP TABLE>-FIELD TO STR_UNIX_SYSTEM-FIELD1,
    So all steps have to be defined in the report before downloading the file.
    So I don't know which legacy system you're speaking about, after creating the file the legacy should read it in order to upload the data.
    U can create a daily job for that report, if you need to transfer the changed data only you should read the change document table (CDHDR and CDPOS) but I don't know HR so I'm not sure these tables are available for HR.
    Max

  • Database Data Security: both from within (using MIMEbase64 encoding) and from without (using encryption).

    In my MDB file databases (Jet 4.x format) I turn on both compression and encryption.  This gives me data security from without, meaning, I can't open a MDB file in a Word Processing software (or otherwise) and read the data in a humanly recognized
    format.   But I am also using MIMEbase64 encoding of my stored data so that the data is humanly unreadable from within - meaning that anyone performing an SQL query will not be able to humanly read the data in my database.  I do the decoding
    (from MIMEbase64) within my end-user software interfaces to the databases. 
    I found out just recently (last few months) that I can do this from Win32 Perl, so I encorporated this feature into my Perl database applications.   Only thing is that MIMEbase64 increases the size of the data stored.
    Is there a better encoding strategy available today which might actually compress the data a little?    

     INSTRUCTIONS FOR SECURE/CUSTOM (non-formula based) TEXTFILE ENCODING (should be undecipherable w/o mappings file):
    by Eric C. Hansen. You may freely use these encoding instructions, and the code I have provided, but please
    acknowledge me as the author where credit is due - such as in a publication. And do not try to sell it.
    However, any code I have provided you may freely use in any programs you write to be sold for your own profit,
    except you may not attempt to sell this encoding scheme (or my code provided), as a generic encoding tool, for
    general use, to be marketed as a turn-key custom encoding solution. 
    (1) Create a unique code list 
          Using the characters:  A-Z a-z 0-9 only. That's 62 characters only.  
           62 (1 char codes) + 3844 (2 char codes) + 238,328 (3 char codes) = 242,234 total codes
                     62x1         +      62x62         +       62x62x62    
           REMINDS ME of my college Genetics course i.e. dominant/recessive trait inheritance tables  
           EXAMPLE CODES:  a, k, 3c, A4, xy1, H8j
    (2) Create a unique word(+punc) list from your textfile which is to be encoded. You know how to do this.
           Example of 9 words(+punc) found between whitespace within a textfile input line:
                "Hello", this is Mr. Bell-va-deer. My number is 999-342-8998.   
                    1       2    3   4       5              6      7       8       9
     PERL code for STEPS 3-7 is provided below. Code for STEP 1 above was previously provided. 
             You should have little trouble writing the textfile encode/decode logic yourself.  
    (3) Read your list of unique codes into an array.
    (4) Read your list of unique words(+punc) into another array.
         LOOP   #-- 0 to number of elements in words array
                (5)     select a random code and a random word(+punc) from the 2 arrays.
                (6)     now remove that code and that word(+punc) from each array using "splice".
                (7)     then save them as key/val pairs to persistent Perl SDBM database files ("mappings").  
         END LOOP
     (8) Once you have your persistent, random code/word mappings, you can convert your textfile
          to an encoded textfile. Read in one line at a time from your textfile (chomp), parse the words(+punc.)
         between whitespace within that line, then for each word(+punc) parsed, perform
         the word-to-code mapping conversions by doing a lookup within the Perl SDBM database
         file of key/val pairs, where KEY=word and VAL=code. You will then need to 
         concatenate these codes (space delimited) to your outputline, in the same order as found in your
         inputline, finally writing the outputline (newline "\n" terminated) to your new encoded textfile.    
    (9) Keep your persistent Perl SDBM database file ("mappings") in SAFE KEEPING, with a naming
         convention of your choice that perhaps hides any relationship to the name of
         your encoded text document - which it specifically pertains to. But keep a record of that joint
        relationship somewhere.  Keep a copy of both the original textfile and the encoded textfile,
        or perhaps you'd like to keep just the encoded textfile?, and not the original?  You can always decode it. 
    (10) Send your encoded text document via email as an attachment, to the recipient of your choice.
    (11) Upload your persistent Perl SDBM database "mappings" file to your secure login FTP download site. 
         NOTE:  If your encoded text document is very large, you may want to reverse 10 & 11, putting the encoded file
             on the FTP site, and sending the Perl SDBM database file ("mappings") as the email attachment.
    (12) Call your recipient to see if they have received the encoded textfile, email attachment.
         Let them know that the "mappings" file is uploaded for them to download from the FTP site.
        You can have a LINGO you both use/know on the phone, to secretly convey this message, if you like,
          to avoid possible interception of this sensitive information.
         Recipient will then take the encoded textfile email attachment, the FTP downloaded "mappings" file,
        and place them both in a directory on their PC where the Perl decoding program is located which you
         had previously sent them to handle all the decoding anytime you send them an encoded textfile + "mappings".
         Recipient will run the Perl decoding utility program to create the original textfile.
    use Win32;         #-- as you can see, I use a Windows O/S Perl distribution. 
    use IO::Handle;
    use SDBM_File;     #-- my understanding is this module comes standard with every Perl distribution
    use Fcntl;
        $PWD=Win32::GetCwd();  #-- get current working directory on Windows O/S platform.            
        srand;        #-- random seeding initiated, do this just once at top.
        @codesARR=();    @wordsARR=();          #-- initialize the arrays
        print "working.  please wait...\n\n";
        unlink( "$PWD\\Project_0836_Mappings_CtoW.pag" )
                    if (-e "$PWD\\Project_0836_Mappings_CtoW.pag" );
       unlink( "$PWD\\Project_0836_Mappings_CtoW.dir" )
                  if (-e "$PWD\\Project_0836_Mappings_CtoW.dir" );
        unlink( "$PWD\\Project_0836_Mappings_WtoC.pag" )
                  if (-e "$PWD\\Project_0836_Mappings_WtoC.pag" );
       unlink( "$PWD\\Project_0836_Mappings_WtoC.dir" )
                 if (-e "$PWD\\Project_0836_Mappings_WtoC.dir" );
         unlink( "$PWD\\Project_0836_Mappings.txt" )
                 if (-e "$PWD\\Project_0836_Mappings.txt" );
       $cnt1=0;    $ret="Y";
        open(CODES,"$PWD\\codes.txt") || do {$ret="N";};
        if ($ret eq "N") {  
               print "Codes input file not opened \n";  
               sleep 5;   die;  
        while (<CODES>) {
               chomp $_;
              $codesARR[$cnt1]=$_;
              $cnt1++;
        print $cnt1 . " codes loaded\n\n";
       close(CODES);
       $cnt2=0;    $ret="Y";
       open(WORDS,"$PWD\\words.txt") || do {$ret="N";};
        if ($ret eq "N") {  
                print "Words input file not opened \n";  
               sleep 5;   die;  
       while (<WORDS>) {
               chomp $_;
              $wordsARR[$cnt2]=$_;
                $cnt2++;
        print $cnt2 . " words loaded\n\n";
        close(WORDS);
        sleep 3;       #-- a little time to check on record counts loaded to both arrays
      tie( %Project_0836_Mappings_WtoC, "SDBM_File", '.\Project_0836_Mappings_WtoC', O_RDWR|O_CREAT, 0666 );
       if (tied %Project_0836_Mappings_WtoC) {
               print "WtoC Hash/SDBM File are now tied\n\n";    
       } else {
              print "Could not tie WtoC Hash/SDBM File\n\n";  sleep 5;  die;
       tie( %Project_0836_Mappings_CtoW, "SDBM_File", '.\Project_0836_Mappings_CtoW', O_RDWR|O_CREAT, 0666 );
        if (tied %Project_0836_Mappings_CtoW) {
                 print "CtoW Hash/SDBM File are now tied\n\n";    
        } else {
               untie(%Project_0836_Mappings_WtoC);  #-- close the successful tie made directly above 
              print "Could not tie CtoW Hash/SDBM File\n\n";  sleep 5;  die;
      open (OUT,"> $PWD\\Project_0836_Mappings.txt");
       OUT->autoflush(1);
       $cnt2=$#wordsARR;   #-- we do this because we will be removing elements from wordsARR
       for ($i=0; $i<=$cnt2; $i++) {
             $index   = rand @codesARR;    # get a random index from the codes array
            $code    = $codesARR[$index]; # get the value of that array element
            splice(@codesARR,$index,1);   # removes only this element from the codes array.
            $index   = rand @wordsARR;    # get a random index from the words array
            $word    = $wordsARR[$index]; # get the value of that array element
            splice(@wordsARR,$index,1);   # removes only this element from the words array.
            $Project_0836_Mappings_WtoC{$word}=$code;   # key/value pair where: word is key, code is value
            $Project_0836_Mappings_CtoW{$code}=$word;   # key/value pair where: code is key, word is value
        print "Your Mappings have been created and saved to (.dir and .pag extension files)\n\n";
        print OUT "Here are your Mappings you just created:\n\n";
        foreach $key (keys %Project_0836_Mappings_WtoC) {
              print OUT "word=" . $key . "     code=" . $Project_0836_Mappings_WtoC{$key} . "\n";
      print OUT "##################################################\n";
       foreach $key (keys %Project_0836_Mappings_CtoW) {
               print OUT "code=" . $key . "     word=" . $Project_0836_Mappings_CtoW{$key} . "\n";
        untie(%Project_0836_Mappings_WtoC);  #-- now you have saved a persistent word/code mappings file
        untie(%Project_0836_Mappings_CtoW);  #-- now you have saved a persistent code/word mappings file
        close(OUT);   
        print "Done.  Goodbye!\n";
        sleep 5;
        exit;

Maybe you are looking for

  • My ipod photo keeps getting an error message to contact support. won't hold a charge and locks up.

    I pod photo locks up, keeps getting error message to contact support. and won't hold a charge.

  • IPod Nano Won't Play Songs...Stays on Menu

    Hi! My husband's 2GB iPod Nano will not play any songs. It will charge and it will show the menu with Music, Photos, Extras, Settings and Shuffle Songs...yet it won't let you click on any of these. I have tried resetting it by holding the Menu and Ce

  • How to fix a submenu on screen

    I have made a vertical spry-menu and I would like to be able to make the submenu stay on the screen until the user is choosing a new item in the mainmenu? But as it is now: As soon as the user has chosen a submenu item and is moving the mouse within

  • SYS_REFCURSOR in SQL Developer

    Hello! I'm trying to execute function which returns sys_refcursor. Code is generated by Sql Developer Run command DECLARE P_DATE_FROM DATE; P_DATE_TO DATE; P_OUT_ERROR_CODE VARCHAR2(200); v_Return SYS_REFCURSOR; BEGIN P_DATE_FROM := SYSDATE - 10; P_D

  • Cannot find role xi_jpr_register_bindings

    I get into the Identity management of NWA, I cannot find  any xi_* or XI_*  roles. Please help understand why?   Version is PI7.00 SPS 09.   Points guaranteed. Thanks!