Data visualization source code

If I use:
java -jar c:\Flex Builder 3\sdks\3.0.0\lib\DMV-source.jar
     "C:\Documents and Settings\All Users\Application Data\Adobe\Flex\"
     c:\temp\dataviz_source
I get :
Exception in thread "main" java.lang.NoClassDefFoundError: flex/license/Logger

Please follow the steps.
1. Extract the DMV-source.jar with winzip or other zip utility.
2. Goto directory <extract path>/META-INF/
3. Open MANIFEST.MF file with a text editor.
4. Copy the contents of the file here.
My manifest file says
Main-Class: flex.charts.Extractor
Class-Path: license.jar
The error you get indicates that it cannot find some class. I believe there is something different in you manifest. Main-Class or Class-Path not correct.

Similar Messages

  • Data Handler source code need modification

    I found this in the forum and try to implement it in my page. The code is running okay but just that when I first load the page into the browser, It shows ALL the records in the database beneath the searchbox.
    All I want is first time user come to the page, it only show the search box but no result. And after user enter the data, it then performs the search and show the result beneath.
    <%@ page language="java" errorPage="errorpage.jsp" contentType="text/html;charset=ISO-8859-1" %>
    <%@ taglib uri="/webapp/DataTags.tld" prefix="jbo" %>
    <html>
    <head>
    <META NAME="GENERATOR" CONTENT="Oracle JDeveloper">
    <LINK REL=STYLESHEET TYPE="text/css" HREF="/webapp/css/bc4j.css">
    <TITLE>Browse Form</TITLE>
    </head>
    <body>
    <jbo:ApplicationModule id="am" configname="oetest.OeAppModule.OeAppModuleLocal" releasemode="Stateful" />
    <jbo:DataSource id="ds" rangesize="3" appid="am" viewobject="ProductInformationView" />
    <jbo:DataHandler appid="am" />
    <%
    /* This scriplet processes http parameters used to extract the search
    and column strings to build the criteria value string */
    /* Initialize variables to hold string if search string and column doesn't
    change between requests.*/
    String column_name=(String)session.getValue("sessionColumnName");
    String search_value=(String)session.getValue("sessionSearchValue");
    // Set search_value to empty string for first time rendering
    if (search_value == null) search_value="";
    String criteria_value;
    //get search parameter and set in session for persistence
    if (request.getParameter("search")!=null) {
    search_value=request.getParameter("search").trim();
    session.putValue("sessionSearchValue", search_value);
    //get column parameter and set in session for persistence
    if (request.getParameter("column")!=null) {
    column_name=request.getParameter("column").trim();
    session.putValue("sessionColumnName", column_name);
    //Construct the criteria value string.
    criteria_value="like '%" + search_value + "%'";
    %>
    <jbo:OnEvent name="Find" >
    <!-- Create a new ViewCiteria to filter data source. ViewCriteria is a
    container for CriteriaRow and Criteria, which filter the rowset returned
    by the the datasource (view object) -->
    <jbo:ViewCriteria id="vc" datasource="ds" action="new">
    <!-- Create CriteriaRow to restrict the query for every attribute
    Essentially, each CriteriaRow works analogous yp an 'AND' in the where
    Clause of the view object. Here we only want to restrict the
    query based on the chosen column. Using 'uppercolumns' makes the
    restricts case insensitive -->
    <jbo:CriteriaRow id="row" > <!-- uppercolumns="true" -->
    <!-- This ensures that column_name has a non empty value. -->
    <% if (column_name==null || column_name.equals("")) { %>
    <jbo:AttributeIterate id="defvc" datasource="ds" queriableonly="true" >
    <% column_name=defvc.getName(); %>
    </jbo:AttributeIterate>
    <% } // end if %>
    <!-- Create Criteria as part of a CriteriaRow to include one or more
    attributes. Essentially, each CriteriaRow works analogous to
    an 'OR' for each attribute in the where Clause of the
    view object. Specify the column_name and criteria_value in the
    dataitem and value attributes, respectively. -->
    <jbo:Criteria dataitem="<%= column_name %>" value="<%= criteria_value %>" />
    <!-- Close CriteriaRow, ViewCriteria tags, respectively -->
    </jbo:CriteriaRow>
    </jbo:ViewCriteria>
    </jbo:OnEvent>
    <h3>ProductInformationView Browse Form</h3>
    <!-- Add a form for the search input -->
    <form name="exsearch" action="ProductInformationView_Browse.jsp" method="post">
    <table>
    <tr>
    <td align="left" nowrap>
    <img border="0" src="go.gif" align="top" width="22" height="25">
    <b><font face="Arial" size="4" color="#336699"> Search </font></b>
    <!-- use a drop list of column names to select. Iterate through Attribute names -->
    <select name="column">
    <jbo:AttributeIterate id="defvc2" datasource="ds" queriableonly="true" >
    <option value="<%= defvc2.getName() %>" <%= defvc2.getName().equals(column_name)?"selected":"" %> ><%= defvc2.getName() %></option>
    </jbo:AttributeIterate>
    </select>
    <!-- Input field for search string -->
    <input name="search" value="<%= search_value %>">
    <input type="submit" name="jboEvent" value="Find">
    </td>
    </tr>
    </table>
    </form>
    <!-- The rest was generate using the BC4J JSP Wizard to build a Browse form. -->
    <table border="0">
    <tr>
    <td ALIGN="right"><jbo:DataScroller datasource="ds"/></td>
    </tr>
    <tr>
    <td><jbo:DataTable datasource="ds" /></td>
    </tr>
    </table>
    <jbo:ReleasePageResources />
    </body>
    </html>

    JosAH wrote:
    A couple of years ago Sun supplied their javax.comm package (mysteriously versioned as version 2)
    but they stopped it for the PC Windows.
    There's an alternative: rxtx which offers an identical API as Sun did and their own native implementation for serial and parallel port handling; I have used both and the rxtx version is clearly superior to Sun's old version: http://www.rxtx.org
    This question popped up recently.
    tschodt wrote in [http://forums.sun.com/thread.jspa?messageID=10863769#10863769:}
    [Java Communications API|http://java.sun.com/products/javacomm/]
    Implementations of the API are currently available for Solaris SPARC, Solaris x86, and Linux x86.follow the Download link to find
    Sun no longer offer's the Windows platform binaries of javax.comm, however javax.comm 2.0.3 can be used for the Windows platform, by using it in conjunction with the Win32 implementation layer provided by the RxTx project. To use that, download javax.comm for the 'generic' platform (which provides the front-end javax.comm API only, without platform specific back-end implementations bundled). Then acquire the Windows binary implementation rxtx-2.0.7pre1 from http://www.rxtx.org.

  • Flex 3.5 data visualization license

    Hi,
    For Flex 3.5,  the data visualization library is freely available, but it's licensing  is unclear to me. Do I still need the Flex Builder license if I want to  use it in a commercial product?
    The legal stuff page (http://opensource.adobe.com/wiki/display/flexsdk/Legal+Stuff#LegalStuf f-LicensesofthevariousFlexSDKpackages) mentions:
    "Adobe Add-ons for Open Source Flex SDK – This package contains  all of the items that are in the Adobe Flex  SDK and not in the Open  Source Flex SDK. Downloading this file will  allow you to bring the Open  Source Flex SDK to parity with the Adobe  Flex SDK. This package includes  the Adobe Flash Player, Adobe AIR, the  advanced font encoding  libraries, and the code that allows licensing of things like the Data Visualization components. All of these elements are licensed under the  Adobe Flex SDK license."
    But I don't understand what that means. Is "code that allows licensing of data visualization" something else than the "data visualization" library?
    Kind regards,
    Glenn

    The Data Visualization components were open sourced, but done so in a somewhat quiet and lazy manner. Nobody ever bothered to update the descriptions on the open source download page to reflect the change and (as far as I can tell) they never bothered to properly repackage it. If you want the source, you also have to go digging through the Flex SVN. Reading the source, you can find all kinds of details that were deliberately undocumented reflecting when Adobe didn't really want you messing with it and/or wanted to give you a reason to pay. No cleanup. Just released as-is.
    For me it's been great since I am at last able to finally dive in and understand how the components work, extend them, and can often fix the quirks fairly easily.

  • Is it possible to get source code of AutomationManager.as class or/and QTPAdapter.as?

    Sorry, we don’t really provide source for those classes right now.
    On 2/25/09 2:47 AM, "JabbyPanda" <
    [email protected]> wrote:
    A new discussion was started by JabbyPanda in
    General Discussion --
      Is it possible to get source code of  AutomationManager.as class or/and QTPAdapter.as?
    I have a license of Flex Builder 3.0.1 Pro, running Win XP.
    Inside "c:\Program Files\Adobe\Flex Builder 3 Plug-in\sdks\2.0.1\frameworks\source\mx\automation\"  folder I can only locate a listing of source code of IAutomationManager interface.
    Inside "c:\Program Files\Adobe\Flex Builder 3 Plug-in\sdks\3.2.0\frameworks\projects\automation\src\mx\automation\" folder there is also a bunch of open sourced classes present, but even source code of IAutomationManager interface is missing.
    And source code for AutomationManager.as and QTPAdapter.as classes are nowhere to find.
    And I tried to extract source files from Data Visualization package as suggested here
    http://blogs.adobe.com/flexdoc/2008/04/extracting_data_visualization.html, no luck
    View/reply at Is it possible to get source code of  AutomationManager.as class or/and QTPAdapter.as? <
    http://www.adobeforums.com/webx?13@@.59b80b91>
    Replies by email are OK.
    Use the unsubscribe <
    http://www.adobeforums.com/webx?280@@.59b80b91!folder=.3c060fa1>  form to cancel your email subscription.

    We can look at setting up some subtopic forums targeting specifics like automation once we have our new system in place.
    On 2/26/09 7:57 AM, "JabbyPanda" <
    [email protected]> wrote:
    A new message was posted by JabbyPanda in
    General Discussion --
      Is it possible to get source code of AutomationManager.as class or/and QTPAdapter.as?
    What I plan to do, is to write a couple of delegates to prepare (instrument) my custom components that extend from UIComponent for testing.
    I found the source file for AQAdapter.as from FlexMonkey tool at  
    http://code.google.com/p/flexmonkey/source/browse/trunk/FlexMonkey/src/com/gorillalogic/aq adaptor/AQAdapter.as, by studying the code of AQAdapter.as I can get the better idea what QTPAdapter.as does.
    In general, I found the documentation on test automation for Flex application to be very modest and limited, for example many attributes for XML-based "class information file" for HP QuickTest tool are not documented at Adobe Flex livedocs.
    BTW, is there any better place where test professionals and Adobe Flex developers exchange the knowledge on test automation of Flex apps?
    I've tried
    http://www.sqaforums.com by running search query
    http://www.google.com/custom?domains=SQAforums.com&! q=Adobe+Flex&sitesearch=SQAforums.com <
    http://www.google.com/custom?domains=SQAforums.com&q=Adobe+Flex&sitesearch=SQAforums.com> , but I left with a feeling the most enquiries were made by people who are just evaluating possiblity of testing of Flex apps with HP QuickTest tool.  

  • Where can i download the Flex Data Visualization package

    i need the Advanced DataGrid,so where can i download the Flex
    Data Visualization package?not free?how much?

    The AdvancedDataGrid should be in the SWC
    frameworks/libs/datavisualization.swc in the Flex 3 SDK at
    sdks/moxie in your Flex Builder 3 installation. The source code for
    the data visualization components is not provided. As far as I know
    these components will not be free but I don't believe pricing has
    been announced yet.

  • I am running 10.6.8 and using iweb for my web site. After several SEO analysis they all indicate I need H1-6 header tags. After looking at the source code I see there are none in iweb. Is it necessary to add? If so, how do I add H Tags to iweb.

    I am running 10.6.8 and using iweb for my web site. After several SEO analysis they all indicate I need H1-6 header tags. After looking at the source code I see there are none in iweb. Are they necessary to add?  Why would one add these tags and how do I add H Tags to iweb? And are there examples to look at? I am slowly learning about simple web design and assumed that iweb was stand alone without having to write code. Is this one of the reasons iweb is no longer supported? Thanks for looking at this!

    A simple text page like this:
    Heading
        sub heading
              text paragraph ....
    Is traditionally represented by html tags like:
    <h1>Heading</h1>
         <h2>sub heading</h2>
              <p>text paragraph ... </p>
    I would guess that the use of h1-h6 tags helps search engines to understand the structure of a page as the tags imply a certain structure.
    This can be compared to more generic tags like <div> that could represent any kind of content - and may be what iWeb uses (you'll have to check yourself).
    I would generally recommend that you use some kind of up to date blog/site building tool, perhaps Wordpress or Squarespace (I haven't used either one myself) that support current web technologies - this should reduce your SEO issues and make it easier to properly support mobile/tablet users.

  • Functional Module:Need  some sample source code.

    Hi All,
    I have created  a customized table   u2018ZStock_Order_Dealeru2019 with the following fields:
    Stock_Order_Dealer
    Dealer Number
    S2D order Number     
    Line item Number     
    Material Number     
    Ordered Quantity     
    Batch Number     
    Received Quantity     
    S2D from D2G     
    Receiving Date
    I need to  create a remote enabled function module in CRM system to fetch the u2018Batch Numberu2019 and u2018Received Quantityu2019 fields when the Material Number is fed to it.Please note that the input and output should be tables.
    Could some one please give some sample source code for this.

    I used table types and select queries to resolve this problem.

  • How to get source code for WinCE 6.0 USB Camera Driver for ARM4I Processor

    Hi,
    I am implementing USB camera driver for my mini2440 board which has an ARM4I processor. The sample code
    "Windows Embedded CE 6.0 USB camera Driver" downloaded from:
    http://www.microsoft.com/downloads/en/details.aspx?FamilyID=2ef087c0-a4ae-42cc-abd0-c466787c11f2
    does not support ARM4I processors. When trying to generate in VS2005 Platform Builder my WinCE 6.0
    image for mini2440 with the Third party catalog items "MJPEG Decompression Filter" and "USB CameraDriver",
    the linker giver errors. Please advise where to find a working source code for USB (now revision 1.1
    ("full-speed") is supported in my WinCE 6.0 image) camera for my ARM4I processor. The code should 
    be in C# but C++ will be fine also.
    Thanks,
       Paul

    i get this on the hyperterminal when i run the cameradshowapp.exe
    Compulab Windows CE NAND X-Loader for CM-T35                                           
    Built Dec 20 2009 at 16:48:16                            
    Version 1.01.222               
    Commit Date 16/12/09                   
    Jumping to bootloader                    
    Microsoft Windows CE Bootloader Common Library Version 1.4 Built Dec 20 2009 16:                                                                               
    46:16    
    INFO:OALLogSetZones: dpCurSettings.ulZoneMask: 0x200b                                                    
    Texas Instruments Windows CE EBOOT for CM-T35, Built Dec 20 2009 at 16:48:10                                                                           
    Version 1.01.222               
    OMAP3430 Version 0x4b7ae02f (Unknown)                                    
    TPS659XX Version 0x10 (ES2.x)                            
    -OEMPinMuxSetup....                  
    System ready!            
    Preparing for download...                        
    INFO: Predownload               
    +FMD_Init        
    Checking bootloader blocks are marked as reserved (Num = 6)                                                          
    +FMD_Init        
    WARN: Boot config wasn't found, using defaults                                             
    +FMD_Init        
    OALFlashStoreOpen: 4096 blocks, 64 sectors/block                                               
    OALFlashStoreOpen: 2048 bytes/sector, 14 reserved blocks                                                       
    Calling LCD_TurnOn                 
    +FMD_Init        
    +FMD_Init        
    BLConfigureFlashPartitions: dwBootPartitionSectorCount = 0x5fff, partition actua                                                                               
    l size =0x4d3a!!!                
    Hit space to enter configuration menu 5...                                         
    Hit space to enter configuration menu 4...                                         
    Hit space to enter configuration menu 3...                                         
    Hit space to enter configuration menu 2...                                         
    Hit space to enter configuration menu 1...                                         
    INFO: Boot Device location = 0x8000020                                     
    Load NK image from flash memory                              
    +FMD_Init        
    ROMHDR (pTOC = 0x823b8c28) ---------------------                                               
      DLL First           : 0x4001c001                                 
      DLL Last            : 0x41c7c0d8                                 
      Physical First      : 0x84001000                                 
      Physical Last       : 0x863bbdec                                 
      Num Modules         :        294                                 
      RAM Start           : 0x863c0000                                 
      RAM Free            : 0x863d5000                                 
      RAM End             : 0x90800000                                 
      Num Copy Entries                        
      Copy Entries Offset : 0x85256e38                                 
      Prof Symbol Length  : 0x00000000                                 
      Prof Symbol Offset  : 0x00000000                                 
      Num Files           :        116                                 
      Kernel Flags        : 0x00000002                                 
      FileSys RAM Percent : 0x00000020                                 
      Driver Glob Start   : 0x00000000                                 
      Driver Glob Length  : 0x00000000                                 
      CPU                 :     0x01c2                                 
      MiscFlags           :     0x0002                                 
      Extensions          : 0x84002020                                 
      Tracking Mem Start  : 0x00000000                                 
      Tracking Mem Length : 0x00000000                                 
    NK Image Loaded            
    Launch Windows CE image by jumping to 0x80001000...                                                  
    Windows CE Kernel for ARM (Thumb Enabled) Built on Apr  5 2011 at 17:47:22                                                                         
    +OEMInit       
    ýSETDATAOUT access is OK....                           
    Forcing clean boot                 
    MainMemoryEndAddress = 0x90800000                                
    -OEMInit       
    +FMD_Init        
    Dumping registry defined VK                          
    Row 0:  0x18    0x9     0x25    0x0     0x0     0x0                                                  
    Row 1:  0x26    0xd     0x28    0x0     0x0     0x0                                                  
    Row 2:  0x27    0x24    0x23    0x0     0x0     0x0                                                  
    Row 3:  0x0     0x0     0x0     0x0     0x0     0x0                                                  
    Row 4:  0x0     0x0     0x0     0x0     0x0                                             
    Row 5:  0x0     0x0     0x0     0x0     0x0     0x0                                                  
    SMSC922x: Core Ethernet Init.                            
    Lan9220 identified. ID_REV = 0x92200000                                      
    SMSC922x: MAC address = 00:01:c0:0a:a0:db                                        
    Lan9220 identified. ID_REV = 0x92200000                                      
    SMSC922x: MAC address = 00:01:c0:09:88:80                                        
    SDIO8686: Loading Driver [version = 38.p44]                                          
    SDIO8686: Reset with TPS GPIO 2 --> done                                       
    !!!Kernel mode PSL 'PRdr' de-registered!!!                                         
    !!!Kernel mode PSL 'HRdr' de-registered!!!                                         
    !!!Kernel mode PSL 'FRdr' de-registered!!!                                         
    EHCI USB Host: HcdPdd_Init+                          
    [OTG] OMAPMHSUSBOTG::Init()+                           
    OMAPMHSUSBOTG::PostInit(): Start.                                
    DSPLINK Module (1.61.04) created on Date: Jun 24 2009 Time: 16:30:52                                                                   
    Display parameters:                  
            Height = 0x280                     
            Width = 0x1e0
            HSW = 0x20
            HFP = 0x8
            HBP = 0x17
            VSW = 0x1
            VFP = 0x4
            VBP = 0x3
            DVI is not enabled
            PixelClkDiv = 0x7
            LogClkDiv = 0x1
            ClkSelDSS = 0x5
    TD035:: LCDTurnOn
    TD035STEE1: Turned display on.
    TD035:: Finished LCD VGA init
    AUTOLAUNCH: Checking HKEY_LOCAL_MACHINE\Startup key for programs to run.
    Can't open HKEY_LOCAL_MACHINE\Startup key.
    [WiFi]: Firmware Version: 9.70.3.23
    CCaptureFramework: Failed setting up the camera data.
    CameraDShowApp: Initializing the camera driver list failed.CameraDShowApp: Retri
    eving the driver list failed.CameraDShowApp: Selecting the camera device failed.
    CameraDShowApp: Selecting the camera device failed.CameraDShowApp: Selecting the
     camera device failed.CameraDShowApp: Selecting the camera device failed.CCaptur
    eFramework: Retrieving the still stream config failed.
    CameraDShowApp: Initializing the capture graph failed.

  • Source code has syntax error in SAP PI7.1 Mapping Test

    HI All,
    IN SAP P7.1  created simple two data types, message types and Message Mapping with only 2 fields. While testing the mapping in Message Mapping it is giving the error as
    Source text of object Message Mapping: MM_Source_to_Target | http://abc.com has syntax errors:
    Source code has syntax error:
    I am able to activate the Datatypes and Message Types but not able to activate the Messge mapping.
    Please if any body faced the same problem please give the solution.
    One more thing is I am able to test the Message Mapping available in BASIS 7.1 Software Component objects. It is executing successfully...
    but otherthan this SWC it not working success fully.....
    Regards
    Sridhar Goli

    Hi David,
    please check the default trace. It may contain the entry:
    Error in compiling : java.io.IOException: Not enough space
    If that's the case, maybe there's too little space for the swap file/device.
    You should ensure that at least 2X (preferably 3X) of Heap (-Xmx) is configured as real swap
    Hope that helps.
    Regards,
    Gábor Klauzer

  • Need sample source code for calling stored procedure in Oracle

    Hi.
    I try to call stored procedure in oracle using JCA JDBC.
    Anybody have sample source code for that ?
    Regards, Arnold.

    Thank you very much for a very quick reply. It worked, but I have an extended problem for which I would like to have a solution. Thank you very much in advance for your help. The problem is described below.
    I have the Procedure defined as below in the SFCS1 package body
    Procedure Company_Selection(O_Cursor IN OUT T_Cursor)
    BEGIN
    Open O_Cursor FOR
    SELECT CompanyId, CompanyName
    FROM Company
    WHERE CompanyProvince IN ('AL','AK');
    END Company_Selection;
    In the Oracle Forms, I have a datablock based on the above stored procedure. When I execute the form and from the menu if I click on Execute Query the data block gets filled up with data (The datablock is configured to display 10 items as a tabular form).
    At this point in time, I want to automate the process of displaying the data, hence I created a button and from there I want to call this stored procedure. So, in the button trigger I have the following statements
    DECLARE
    A SFCS1.T_Cursor;
    BEGIN
    SFCS1.Company_Selection(A);
    go_Block ('Block36');
    The cursor goes to the corresponding block, but does not display any data. Can you tell me how to get the data displayed. In the future versions, I'm planning to put variables in the WHERE clause.

  • ABAP source code is written "by hand" or automatically?

    Hi all,
    I would like to modify the report "Open Items - Vendor Due Date Forecast" created by T. S_ALR_87012084. 
    With SE93 i found the name of the program RFKOFW00, which are referring to the T. S_ALR_87012084. T. S_ALR_87012084. (Parameter: D_SREPOVARI-REPORT = RFKOFW00) and with SE38 i have seen the ABAP source code of the program RFKOFW00.
    My questions are:
    1) The ABAP  source code of the program RFKOFW00 is written "by hand", or automatically by one of the SAP tools, for example Report Painter/Writer, SAP queryu2026..? It seems to me that it is written "by hand". Is this true?
    2) In general, how can i tell if a SAP ABAP program is written "by hand" or automatically by one of SAP tools? I know that one way to understand is that source code, written by hand is more clear.
    Is there a way to understand, more accurate, more secure?
    Thanks in advance
    Serena

    Hi ,
    if the code is automatically created, there will be a comment line in the beginning of the code which says
    Generated function module for ..........
    Please do not modify or copy this function module
    Regards

  • File not visible in Layout Editor, but okay in Source Code Editor & Preview

    I just finished editing this page, and uploaded. It is visible on www, but when I go to edit it in Layout Editor, the cursor is blinking on a white background. Nothing appears to be there. However if I change to Source Code Editor or Preview, all my data is there. Here is the link to it - www.engraversnetwork.com/uls_lasers.html.

    Wow! I figured it out. I was cleaning up my meta tags and left the ">" bracket off of the end of the line. Maybe that will help someone later on

  • Upload and Download ABAP Source Code

    This is a program that I have had kicking around for a couple of years in various incarnations.
    Source Code Listing
    Report: ZKBPROGS *
    Function : Up/Download ABAP reports complete with texts *
    - this program does not update TRDIR with the *
    TRDIR entries that are in the program uploaded. Instead, *
    current users stats are used. *
    - this program allows selection of reports from a list or *
    a single report can be tuped in and uploaded *
    - this program also updates TADIR so that a development class*
    is assigned to the program *
    - this program checks to see if the program already has a *
    TRDIR entry, and if it does, warns the user *
    - this program will save/restore the program documenation too*
    REPORT ZKBPROGS
    NO STANDARD PAGE HEADING
    LINE-SIZE 255.
    Declare Database Objects *
    tables:
    DOKIL,
    TRDIR.
    Constants*
    CONSTANTS:
    MC_TRDIR_IDENTIFIER(72) TYPE C VALUE '%&%& RDIR',
    MC_REPORT_IDENTIFIER(72) TYPE C VALUE '%&%& REPO',
    MC_TEXT_IDENTIFIER(72) TYPE C VALUE '%&%& TEXP',
    MC_THEAD_IDENTIFIER(72) TYPE C VALUE '%&%& HEAD',
    MC_DOC_IDENTIFIER(72) TYPE C VALUE '%&%& DOKL',
    MC_TRDIR_SHORT(4) TYPE C VALUE 'RDIR',
    MC_REPORT_SHORT(4) TYPE C VALUE 'REPO',
    MC_TEXT_SHORT(4) TYPE C VALUE 'TEXP',
    MC_THEAD_SHORT(4) TYPE C VALUE 'HEAD',
    MC_DOC_SHORT(4) TYPE C VALUE 'DOKP'.
    Declare Module level data structures *
    DATA: BEGIN OF MTAB_PROGRAM_SOURCE OCCURS 0,
    LINE(72) TYPE C,
    END OF MTAB_PROGRAM_SOURCE.
    DATA: MTAB_PROGRAM_TRDIR LIKE TRDIR OCCURS 0 WITH HEADER LINE.
    DATA: MTAB_PROGRAM_TEXTS LIKE TEXTPOOL OCCURS 0 WITH HEADER LINE.
    DATA: MSTR_THEAD LIKE THEAD.
    DATA: BEGIN OF MTAB_PROGRAM_FILE OCCURS 0,
    LINE(275) TYPE C,
    END OF MTAB_PROGRAM_FILE.
    DATA: BEGIN OF MTAB_DIRECTORY OCCURS 0,
    NAME LIKE TRDIR-NAME,
    DESC(72) TYPE C,
    SAVENAME LIKE RLGRAP-FILENAME,
    END OF MTAB_DIRECTORY.
    DATA: BEGIN OF MTAB_PROGRAM_DOCUMENTATION OCCURS 0,
    LINE(255) TYPE C,
    END OF MTAB_PROGRAM_DOCUMENTATION.
    Selection Screen *
    *-- Options for upload/download of programs
    SELECTION-SCREEN BEGIN OF BLOCK FRM_OPTIONS WITH FRAME TITLE TEXT-UDL.
    PARAMETERS:
    RB_DOWN RADIOBUTTON GROUP UDL DEFAULT 'X'. " Download reports
    SELECTION-SCREEN BEGIN OF BLOCK FRM_TRDIR WITH FRAME TITLE TEXT-DIR.
    SELECT-OPTIONS:
    S_NAME FOR TRDIR-NAME, " Program Name
    S_SUBC FOR TRDIR-SUBC " Program Type
    DEFAULT 'F' OPTION EQ SIGN E," Exclude Functions by default
    S_CNAM FOR TRDIR-CNAM " Created by
    DEFAULT SY-UNAME,
    S_UNAM FOR TRDIR-UNAM, " Last Changed by
    S_CDAT FOR TRDIR-CDAT, " Creation date
    S_UDAT FOR TRDIR-UDAT. " Last update date
    SELECTION-SCREEN END OF BLOCK FRM_TRDIR.
    *-- Options for uploading programs
    PARAMETERS:
    RB_UP RADIOBUTTON GROUP UDL. " Upload reports
    SELECTION-SCREEN BEGIN OF BLOCK FRM_UPLOAD WITH FRAME TITLE TEXT-UPL.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 1(29) TEXT-SNG.
    PARAMETERS:
    RB_FILE RADIOBUTTON GROUP HOW DEFAULT 'X'.
    SELECTION-SCREEN COMMENT 33(42) TEXT-FNA.
    SELECTION-SCREEN END OF LINE.
    PARAMETERS:
    RB_LIST RADIOBUTTON GROUP HOW.
    SELECTION-SCREEN END OF BLOCK FRM_UPLOAD.
    SELECTION-SCREEN END OF BLOCK FRM_OPTIONS.
    *-- Options for up/downloading programs
    SELECTION-SCREEN BEGIN OF BLOCK FRM_FILEN WITH FRAME TITLE TEXT-FIL.
    PARAMETERS:
    RB_DOS RADIOBUTTON GROUP FIL DEFAULT 'X', " Save to local
    RB_UNIX RADIOBUTTON GROUP FIL, " Save to UNIX
    P_PATH LIKE RLGRAP-FILENAME " Path to save files to
    DEFAULT 'c:\temp\'.
    SELECTION-SCREEN END OF BLOCK FRM_FILEN.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_NAME-LOW.
    CALL FUNCTION 'F4_PROGRAM'
    EXPORTING
    OBJECT = S_NAME-LOW
    SUPPRESS_SELECTION = 'X'
    IMPORTING
    RESULT = S_NAME-LOW
    EXCEPTIONS
    OTHERS = 1.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_NAME-HIGH.
    CALL FUNCTION 'F4_PROGRAM'
    EXPORTING
    OBJECT = S_NAME-HIGH
    SUPPRESS_SELECTION = 'X'
    IMPORTING
    RESULT = S_NAME-HIGH
    EXCEPTIONS
    OTHERS = 1.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_UNAM-LOW.
    PERFORM GET_NAME USING 'S_UNAM-LOW'
    CHANGING S_UNAM-LOW.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_UNAM-HIGH.
    PERFORM GET_NAME USING 'S_UNAM-HIGH'
    CHANGING S_UNAM-HIGH.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_CNAM-LOW.
    PERFORM GET_NAME USING 'S_CNAM-LOW'
    CHANGING S_CNAM-LOW.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_CNAM-HIGH.
    PERFORM GET_NAME USING 'S_CNAM-HIGH'
    CHANGING S_CNAM-HIGH.
    TOP-OF-PAGE.
    IF RB_LIST = 'X'.
    FORMAT COLOR COL_HEADING.
    NEW-LINE.
    WRITE: AT 3 TEXT-H01,
    AT 15 TEXT-H03.
    FORMAT COLOR OFF.
    ENDIF.
    AT LINE-SELECTION.
    CHECK RB_LIST = 'X'. " only do in list mode
    READ LINE SY-CUROW FIELD VALUE MTAB_DIRECTORY-SAVENAME.
    *-- Read file into an internal table
    PERFORM READ_REPORT_FROM_DISK TABLES MTAB_PROGRAM_FILE
    USING MTAB_DIRECTORY-SAVENAME.
    *-- Split table into TADIR entry, report lines, and report text
    PERFORM SPLIT_INCOMING_FILE TABLES MTAB_PROGRAM_FILE
    MTAB_PROGRAM_SOURCE
    MTAB_PROGRAM_TEXTS
    MTAB_PROGRAM_DOCUMENTATION
    CHANGING TRDIR
    MSTR_THEAD.
    *-- Save all of the data
    PERFORM INSERT_NEW_REPORT TABLES MTAB_PROGRAM_SOURCE
    MTAB_PROGRAM_TEXTS
    MTAB_PROGRAM_DOCUMENTATION
    USING TRDIR
    MSTR_THEAD.
    Start of processing *
    START-OF-SELECTION.
    FORMAT COLOR COL_NORMAL.
    IF RB_DOWN = 'X'.
    PERFORM DOWNLOAD_REPORTS.
    ELSEIF RB_UP = 'X'.
    PERFORM UPLOAD_REPORTS.
    ENDIF.
    END-OF-SELECTION.
    IF RB_DOWN = 'X'.
    CONCATENATE P_PATH
    'directory.txt'
    INTO P_PATH.
    PERFORM SAVE_TABLE_TO_FILE TABLES MTAB_DIRECTORY
    USING P_PATH.
    ENDIF.
    FORM UPLOAD_REPORTS *
    FORM UPLOAD_REPORTS.
    *-- Can upload a reports entered in selection criteria or
    *-- select from a list. List can be from index.txt in same directory
    *-- (created by the download) or by reading the first line of each file
    *-- in the directory.
    IF RB_FILE = 'X'. " Upload single program from a file
    *-- Read file into an internal table
    PERFORM READ_REPORT_FROM_DISK TABLES MTAB_PROGRAM_FILE
    USING P_PATH.
    *-- Split table into TADIR entry, report lines, and report text
    PERFORM SPLIT_INCOMING_FILE TABLES MTAB_PROGRAM_FILE
    MTAB_PROGRAM_SOURCE
    MTAB_PROGRAM_TEXTS
    MTAB_PROGRAM_DOCUMENTATION
    CHANGING TRDIR
    MSTR_THEAD.
    *-- Save all of the data
    PERFORM INSERT_NEW_REPORT TABLES MTAB_PROGRAM_SOURCE
    MTAB_PROGRAM_TEXTS
    MTAB_PROGRAM_DOCUMENTATION
    USING TRDIR
    MSTR_THEAD.
    ELSEIF RB_LIST = 'X'. " Show list for user to choose from
    *-- get list of report names/descriptions from directory text
    CONCATENATE P_PATH
    'directory.txt'
    INTO P_PATH.
    PERFORM READ_REPORT_FROM_DISK TABLES MTAB_DIRECTORY
    USING P_PATH.
    SORT MTAB_DIRECTORY.
    *-- Write out list of report names/descriptions
    LOOP AT MTAB_DIRECTORY.
    WRITE:
    / MTAB_DIRECTORY-NAME UNDER TEXT-H01,
    MTAB_DIRECTORY-DESC UNDER TEXT-H03,
    MTAB_DIRECTORY-SAVENAME.
    ENDLOOP.
    *-- Process user selections for reports to upload.
    ENDIF.
    ENDFORM. " upload_reports
    FORM DOWNLOAD_REPORTS *
    From the user selections, get all programs that meet the *
    criteria, and save them in ftab_program_directory. *
    Also save the report to disk. *
    FORM DOWNLOAD_REPORTS.
    DATA:
    LC_FULL_FILENAME LIKE RLGRAP-FILENAME.
    *-- The table is put into an internal table because the program will
    *-- abend if multiple transfers to a dataset occur within a SELECT/
    *-- ENDSELCT (tested on 3.1H)
    SELECT * FROM TRDIR
    INTO TABLE MTAB_PROGRAM_TRDIR
    WHERE NAME IN S_NAME
    AND SUBC IN S_SUBC
    AND CNAM IN S_CNAM
    AND UNAM IN S_UNAM
    AND CDAT IN S_CDAT
    AND UDAT IN S_UDAT.
    LOOP AT MTAB_PROGRAM_TRDIR.
    *-- Clear out text and source code tables
    CLEAR:
    MTAB_PROGRAM_FILE,
    MTAB_PROGRAM_SOURCE,
    MTAB_PROGRAM_TEXTS,
    MTAB_PROGRAM_DOCUMENTATION.
    REFRESH:
    MTAB_PROGRAM_FILE,
    MTAB_PROGRAM_SOURCE,
    MTAB_PROGRAM_TEXTS,
    MTAB_PROGRAM_DOCUMENTATION.
    *-- Get the report
    READ REPORT MTAB_PROGRAM_TRDIR-NAME INTO MTAB_PROGRAM_SOURCE.
    *-- Get the text for the report
    READ TEXTPOOL MTAB_PROGRAM_TRDIR-NAME INTO MTAB_PROGRAM_TEXTS.
    *-- Get the documentation for the report
    CLEAR DOKIL.
    SELECT * UP TO 1 ROWS FROM DOKIL
    WHERE ID = 'RE'
    AND OBJECT = MTAB_PROGRAM_TRDIR-NAME
    AND LANGU = SY-LANGU
    AND TYP = 'E'
    ORDER BY VERSION DESCENDING.
    ENDSELECT.
    *-- Documentation exists for this object
    IF SY-SUBRC = 0.
    CALL FUNCTION 'DOCU_READ'
    EXPORTING
    ID = DOKIL-ID
    LANGU = DOKIL-LANGU
    OBJECT = DOKIL-OBJECT
    TYP = DOKIL-TYP
    VERSION = DOKIL-VERSION
    IMPORTING
    HEAD = MSTR_THEAD
    TABLES
    LINE = MTAB_PROGRAM_DOCUMENTATION
    EXCEPTIONS
    OTHERS = 1.
    ENDIF.
    *-- Put the report code and texts into a single file
    *-- Put the identifier line in so that the start of the TRDIR line
    *-- is marked
    CONCATENATE MC_TRDIR_IDENTIFIER
    MTAB_PROGRAM_TRDIR-NAME
    INTO MTAB_PROGRAM_FILE-LINE.
    APPEND MTAB_PROGRAM_FILE.
    *-- Add the TRDIR line
    MTAB_PROGRAM_FILE-LINE = MTAB_PROGRAM_TRDIR.
    APPEND MTAB_PROGRAM_FILE.
    *-- Put the identifier line in so that the start of the report code
    *-- is marked
    CONCATENATE MC_REPORT_IDENTIFIER
    MTAB_PROGRAM_TRDIR-NAME
    INTO MTAB_PROGRAM_FILE-LINE.
    APPEND MTAB_PROGRAM_FILE.
    *-- Add the report code
    LOOP AT MTAB_PROGRAM_SOURCE.
    MTAB_PROGRAM_FILE = MTAB_PROGRAM_SOURCE.
    APPEND MTAB_PROGRAM_FILE.
    ENDLOOP.
    *-- Put the identifier line in so that the start of the report text
    *-- is marked
    CONCATENATE MC_TEXT_IDENTIFIER
    MTAB_PROGRAM_TRDIR-NAME
    INTO MTAB_PROGRAM_FILE-LINE.
    APPEND MTAB_PROGRAM_FILE.
    *-- Add the report texts
    LOOP AT MTAB_PROGRAM_TEXTS.
    MTAB_PROGRAM_FILE = MTAB_PROGRAM_TEXTS.
    APPEND MTAB_PROGRAM_FILE.
    ENDLOOP.
    *-- Put the identifier line in so that the start of the THEAD record
    *-- is marked
    CONCATENATE MC_THEAD_IDENTIFIER
    MTAB_PROGRAM_TRDIR-NAME
    INTO MTAB_PROGRAM_FILE-LINE.
    APPEND MTAB_PROGRAM_FILE.
    MTAB_PROGRAM_FILE = MSTR_THEAD.
    APPEND MTAB_PROGRAM_FILE.
    *-- Put the identifier line in so that the start of the report
    *-- documentation is marked
    CONCATENATE MC_DOC_IDENTIFIER
    MTAB_PROGRAM_TRDIR-NAME
    INTO MTAB_PROGRAM_FILE-LINE.
    APPEND MTAB_PROGRAM_FILE.
    *-- Add the report documentation
    LOOP AT MTAB_PROGRAM_DOCUMENTATION.
    MTAB_PROGRAM_FILE = MTAB_PROGRAM_DOCUMENTATION.
    APPEND MTAB_PROGRAM_FILE.
    ENDLOOP.
    *-- Make the fully pathed filename that report will be saved to
    CONCATENATE P_PATH
    MTAB_PROGRAM_TRDIR-NAME
    '.txt'
    INTO LC_FULL_FILENAME.
    PERFORM SAVE_TABLE_TO_FILE TABLES MTAB_PROGRAM_FILE
    USING LC_FULL_FILENAME.
    *-- Write out message with Program Name/Description
    READ TABLE MTAB_PROGRAM_TEXTS WITH KEY ID = 'R'.
    IF SY-SUBRC = 0.
    MTAB_DIRECTORY-NAME = MTAB_PROGRAM_TRDIR-NAME.
    MTAB_DIRECTORY-DESC = MTAB_PROGRAM_TEXTS-ENTRY.
    MTAB_DIRECTORY-SAVENAME = LC_FULL_FILENAME.
    APPEND MTAB_DIRECTORY.
    WRITE: / MTAB_PROGRAM_TRDIR-NAME,
    MTAB_PROGRAM_TEXTS-ENTRY(65) COLOR COL_HEADING.
    ELSE.
    MTAB_DIRECTORY-NAME = MTAB_PROGRAM_TRDIR-NAME.
    MTAB_DIRECTORY-DESC = 'No description available'.
    MTAB_DIRECTORY-SAVENAME = LC_FULL_FILENAME.
    APPEND MTAB_DIRECTORY.
    WRITE: / MTAB_PROGRAM_TRDIR-NAME.
    ENDIF.
    ENDLOOP.
    ENDFORM. " BUILD_PROGRAM_DIRECTORY
    FORM SAVE_TABLE_TO_FILE *
    --> FTAB_TABLE *
    --> F_FILENAME *
    FORM SAVE_TABLE_TO_FILE TABLES FTAB_TABLE
    USING F_FILENAME.
    IF RB_DOS = 'X'. " Save file to presentation server
    CALL FUNCTION 'WS_DOWNLOAD'
    EXPORTING
    FILENAME = F_FILENAME
    FILETYPE = 'ASC'
    TABLES
    DATA_TAB = FTAB_TABLE
    EXCEPTIONS
    OTHERS = 4.
    IF SY-SUBRC NE 0.
    WRITE: / 'Error opening dataset' COLOR COL_NEGATIVE,
    F_FILENAME COLOR COL_NEGATIVE.
    ENDIF.
    ELSE. " Save file to application server
    OPEN DATASET F_FILENAME FOR OUTPUT IN TEXT MODE.
    IF SY-SUBRC = 0.
    LOOP AT FTAB_TABLE.
    TRANSFER FTAB_TABLE TO F_FILENAME.
    IF SY-SUBRC NE 0.
    WRITE: / 'Error writing record to file;' COLOR COL_NEGATIVE,
    F_FILENAME COLOR COL_NEGATIVE.
    ENDIF.
    ENDLOOP.
    ELSE.
    WRITE: / 'Error opening dataset' COLOR COL_NEGATIVE,
    F_FILENAME COLOR COL_NEGATIVE.
    ENDIF.
    ENDIF. " End RB_DOS
    ENDFORM. " SAVE_PROGRAM
    FORM READ_REPORT_FROM_DISK *
    Read report into internal table. Can read from local or *
    remote computer *
    FORM READ_REPORT_FROM_DISK TABLES FTAB_TABLE
    USING F_FILENAME.
    DATA:
    LC_MESSAGE(128) TYPE C.
    CLEAR FTAB_TABLE.
    REFRESH FTAB_TABLE.
    IF RB_DOS = 'X'.
    TRANSLATE F_FILENAME USING '/\'. " correct slash for Dos PC file
    CALL FUNCTION 'WS_UPLOAD'
    EXPORTING
    FILENAME = F_FILENAME
    FILETYPE = 'ASC'
    TABLES
    DATA_TAB = FTAB_TABLE
    EXCEPTIONS
    CONVERSION_ERROR = 1
    FILE_OPEN_ERROR = 2
    FILE_READ_ERROR = 3
    INVALID_TABLE_WIDTH = 4
    INVALID_TYPE = 5
    NO_BATCH = 6
    UNKNOWN_ERROR = 7
    OTHERS = 8.
    IF SY-SUBRC >< 0.
    WRITE: / 'Error reading file from local PC' COLOR COL_NEGATIVE.
    ENDIF.
    ELSEIF RB_UNIX = 'X'.
    TRANSLATE F_FILENAME USING '\/'. " correct slash for unix
    OPEN DATASET F_FILENAME FOR INPUT MESSAGE LC_MESSAGE IN TEXT MODE.
    IF SY-SUBRC = 0.
    DO.
    READ DATASET F_FILENAME INTO FTAB_TABLE.
    IF SY-SUBRC = 0.
    APPEND FTAB_TABLE.
    ELSE.
    EXIT.
    ENDIF.
    ENDDO.
    CLOSE DATASET F_FILENAME.
    ELSE.
    WRITE: / 'Error reading file from remote computer'
    COLOR COL_NEGATIVE,
    / LC_MESSAGE,
    / F_FILENAME.
    SY-SUBRC = 4.
    ENDIF.
    ENDIF.
    ENDFORM. " READ_REPORT_FROM_DISK
    FORM SPLIT_INCOMING_FILE *
    --> FTAB_PROGRAM_FILE *
    --> FTAB_PROGRAM_SOURCE *
    --> ` *
    --> FTAB_PROGRAM_TEXTS *
    FORM SPLIT_INCOMING_FILE TABLES FTAB_PROGRAM_FILE
    STRUCTURE MTAB_PROGRAM_FILE
    FTAB_PROGRAM_SOURCE
    STRUCTURE MTAB_PROGRAM_SOURCE
    FTAB_PROGRAM_TEXTS
    STRUCTURE MTAB_PROGRAM_TEXTS
    FTAB_PROGRAM_DOCUMENTATION
    STRUCTURE MTAB_PROGRAM_DOCUMENTATION
    CHANGING FSTR_TRDIR
    FSTR_THEAD.
    DATA:
    LC_DATATYPE(4) TYPE C, " Type of data, REPO, TEXP, RDIR
    LC_PROGRAM_FILE LIKE MTAB_PROGRAM_FILE.
    LOOP AT FTAB_PROGRAM_FILE.
    LC_PROGRAM_FILE = FTAB_PROGRAM_FILE.
    CASE LC_PROGRAM_FILE(9).
    WHEN MC_TRDIR_IDENTIFIER.
    LC_DATATYPE = MC_TRDIR_SHORT.
    WHEN MC_REPORT_IDENTIFIER.
    LC_DATATYPE = MC_REPORT_SHORT.
    WHEN MC_TEXT_IDENTIFIER.
    LC_DATATYPE = MC_TEXT_SHORT.
    WHEN MC_DOC_IDENTIFIER.
    LC_DATATYPE = MC_DOC_SHORT.
    WHEN MC_THEAD_IDENTIFIER.
    LC_DATATYPE = MC_THEAD_SHORT.
    WHEN OTHERS. " Actual contents of report, trdir, or text
    CASE LC_DATATYPE.
    WHEN MC_TRDIR_SHORT.
    FSTR_TRDIR = FTAB_PROGRAM_FILE.
    WHEN MC_REPORT_SHORT.
    FTAB_PROGRAM_SOURCE = FTAB_PROGRAM_FILE.
    APPEND FTAB_PROGRAM_SOURCE.
    WHEN MC_TEXT_SHORT.
    FTAB_PROGRAM_TEXTS = FTAB_PROGRAM_FILE.
    APPEND FTAB_PROGRAM_TEXTS.
    WHEN MC_THEAD_SHORT.
    FSTR_THEAD = FTAB_PROGRAM_FILE.
    WHEN MC_DOC_SHORT.
    FTAB_PROGRAM_DOCUMENTATION = FTAB_PROGRAM_FILE.
    APPEND FTAB_PROGRAM_DOCUMENTATION.
    ENDCASE.
    ENDCASE.
    ENDLOOP.
    ENDFORM. " SPLIT_INCOMING_FILE
    FORM INSERT_NEW_REPORT*
    --> FTAB_PROGRAM_SOURCE *
    --> FTAB_PROGRAM_TEXTS *
    --> F_TRDIR *
    FORM INSERT_NEW_REPORT TABLES FTAB_PROGRAM_SOURCE
    STRUCTURE MTAB_PROGRAM_SOURCE
    FTAB_PROGRAM_TEXTS
    STRUCTURE MTAB_PROGRAM_TEXTS
    FTAB_PROGRAM_DOCUMENTATION
    STRUCTURE MTAB_PROGRAM_DOCUMENTATION
    USING FSTR_TRDIR LIKE TRDIR
    FSTR_THEAD LIKE MSTR_THEAD.
    DATA:
    LC_OBJ_NAME LIKE E071-OBJ_NAME,
    LC_LINE2(40) TYPE C,
    LC_ANSWER(1) TYPE C.
    *-- read trdir to see if the report already exists, if it does, prompt
    *-- user to overwrite or abort.
    SELECT SINGLE * FROM TRDIR WHERE NAME = FSTR_TRDIR-NAME.
    IF SY-SUBRC = 0. " Already exists
    CONCATENATE 'want to overwrite report'
    FSTR_TRDIR-NAME
    INTO LC_LINE2 SEPARATED BY SPACE.
    CONCATENATE LC_LINE2
    INTO LC_LINE2.
    CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'
    EXPORTING
    DEFAULTOPTION = 'N'
    TEXTLINE1 = 'The selected report already exists, do you'
    TEXTLINE2 = LC_LINE2
    TITEL = 'Report already exists'
    CANCEL_DISPLAY = SPACE
    IMPORTING
    ANSWER = LC_ANSWER
    EXCEPTIONS
    OTHERS = 1.
    ELSE.
    LC_ANSWER = 'J'.
    ENDIF.
    IF LC_ANSWER = 'J'.
    *-- Create the TADIR entry. (TRDIR entry created by INSERT REPORT)
    LC_OBJ_NAME = TRDIR-NAME.
    CALL FUNCTION 'TR_TADIR_POPUP_ENTRY_E071'
    EXPORTING
    WI_E071_PGMID = 'R3TR'
    WI_E071_OBJECT = 'PROG'
    WI_E071_OBJ_NAME = LC_OBJ_NAME
    WI_TADIR_DEVCLASS = '$TMP'
    EXCEPTIONS
    EXIT = 3
    OTHERS = 4.
    IF SY-SUBRC = 0.
    *-- Create Report
    INSERT REPORT FSTR_TRDIR-NAME FROM FTAB_PROGRAM_SOURCE.
    *-- Create Texts
    INSERT TEXTPOOL FSTR_TRDIR-NAME FROM FTAB_PROGRAM_TEXTS
    LANGUAGE SY-LANGU.
    *-- Save Documentation
    CALL FUNCTION 'DOCU_UPDATE'
    EXPORTING
    HEAD = FSTR_THEAD
    STATE = 'A'
    TYP = 'E'
    VERSION = '1'
    TABLES
    LINE = FTAB_PROGRAM_DOCUMENTATION
    EXCEPTIONS
    OTHERS = 1.
    ELSE.
    WRITE: / 'Error updating the TADIR entry' COLOR COL_NEGATIVE,
    'Program' COLOR COL_NEGATIVE INTENSIFIED OFF,
    FSTR_TRDIR-NAME, 'was not loaded into SAP.'
    COLOR COL_NEGATIVE INTENSIFIED OFF.
    ENDIF.
    ELSE.
    WRITE: / FSTR_TRDIR-NAME COLOR COL_NEGATIVE,
    'was not uploaded into SAP. Action cancelled by user'
    COLOR COL_NEGATIVE INTENSIFIED OFF.
    ENDIF.
    ENDFORM. " INSERT_NEW_REPORT
    FORM GET_NAME *
    --> VALUE(F_FIELD) *
    --> F_NAME *
    FORM GET_NAME USING VALUE(F_FIELD)
    CHANGING F_NAME.
    DATA: LTAB_FIELDS LIKE DYNPREAD OCCURS 0 WITH HEADER LINE,
    LC_PROG LIKE D020S-PROG,
    LC_DNUM LIKE D020S-DNUM.
    TRANSLATE F_FIELD TO UPPER CASE.
    refresh ltab_fields.
    LTAB_FIELDS-FIELDNAME = F_FIELD.
    append ltab_fields.
    LC_PROG = SY-REPID .
    LC_DNUM = SY-DYNNR .
    CALL FUNCTION 'DYNP_VALUES_READ'
    EXPORTING
    DYNAME = LC_PROG
    DYNUMB = LC_DNUM
    TABLES
    dynpfields = ltab_fields
    EXCEPTIONS
    OTHERS = 01.
    read table ltab_fields index 1.
    IF SY-SUBRC EQ 0.
    F_NAME = LTAB_FIELDS-FIELDVALUE.
    refresh ltab_fields.
    ENDIF.
    CALL FUNCTION 'F4_USER'
    EXPORTING
    OBJECT = F_NAME
    IMPORTING
    RESULT = F_NAME.
    ENDFORM. " GET_NAME
    Program Texts
    DIR File Download Options (File Selection)
    FIL File Options
    FNA Enter filename below (under File Options)
    H01 Prog Name
    H03 Program Description
    SNG Upload a single file
    UDL Upload to SAP/Download from SAP
    UPL File Upload Options
    R Backup/Restore program source code with texts
    P_PATH Path to save programs to
    RB_DOS Files on local computer
    RB_DOWN Download Programs
    RB_FILE Upload a single file
    RB_LIST Select program(s) from a list
    RB_UNIX Files on remote computer
    RB_UP Upload Programs to SAP
    S_CDAT Date Created
    S_CNAM Created by UserID
    S_NAME Program Name
    S_SUBC Program Type
    S_UDAT Date Changed
    S_UNAM Last Changed by UserID

    Hi
    you can use SAPLink for this
    http://code.google.com/p/saplink/
    Abhi

  • How to release top-level VI (only) source code?

    Hello,
    I am developing an addon to an application I already have. The application is large (over 1,500 VI's) and the VIs are set up to compile with mostly default settings (there's a top-level VI, a few with Front Panel visible, most of them are not visible).
    The customer wants the source code to the work I'm going to do, and it's going to use many existing sub-VI's. The addon itself will be a sub-VI (I have a Main.vi that basically opens 'screens', and this is a new screen). The existing sub-VI's basically do the data collection and processing, and the new code will do some additional processing and have a nice GUI to the existing code. The customer wants the source so they can make modifications as needed.
    Is there any easy way to provide just the source for the top-level VI? Basically, I want to give them M.vi, where M.vi calls n.vi, o.vi... etc, but o-z.vi need to remain closed-source. Also, M.vi is called by Main.vi, which opens screens A-M.vi
    One option is do copy the entire application, then open every sub-VI and save it without Source Code. But with so many files, this seems like a bad idea. I also then have to maintain two applications.
    Any good ideas out there? It seems so easy in other languages (use object files) that it seems like there should be a solution here I'm not seeing.... Thanks!
    Message Edited by rnelsonee on 06-02-2010 08:28 AM
    Message Edited by rnelsonee on 06-02-2010 08:31 AM
    Solved!
    Go to Solution.

    Dont know if this is the best solution for you, but you can create a "virtual folder" in the LabVIEW project with all the sub-VIs that you want to keep closed-source. Then create Source Distribution build specifications in the project and remove the block diagrams assign passwords to all VIs in the virtual folder. See attached pics.
    Attachments:
    Project.JPG ‏23 KB
    SrcDist.JPG ‏62 KB

  • Error in Process Chain while extracting data from source system

    Hi All,
    Dail we are facing problem while retrieving the data from source system for the data source 0TB_AMOUNT1 in the process chain, it is giving error "Function module BANK_TMC_API_SIM_GET does not exist Furnction module". when I repeat the step than it is going fine.
    Please let me know why this error is coming for first why it is not coming after repeating the step?
    Thanks & Regards,
    Murali.

    Hi Murali,
    Hope you are doing good..
    Is it a full or Delta load on a daily basis? Did you check if the FM exists in your system?
    Did you try debugging the load in source system and check if the extractor is trying to call FM you mention.
    If possible please post the exact error message you are receiving so that we could get an idea whats the error and why you are encountering it.
    As of now what i can suggest is, go to RSA2 in source system, give the datasource name and check if the extractor code has FM in it.
    Regards,
    Anil Pragada.

Maybe you are looking for

  • Which file types will iPhoto11/iMovie11 import into their libraries?  Which are not imported?

    I am moving files from my PC to my Macbook 13' and then importing them into iPhoto11/iMovie11.  Are there file types that will not be imported and therefore should not be removed from their original location after the import?

  • I think Mountain Lion fixed some of the LR UI issues

    I just got my MBPr and I immediately did a clean install of Mountain Lion(still had Lion, up-to-date took about 20 seconds, its got to be automated to some extent) I just installed LR4.1 and Ill be damned if the UI doesn't look perfectly fine, and th

  • Raw to jpeg prosessing much slower in CS6

    I asked same question in general discussion but got no answer! I´m tweeking my time lapse image sequence in ACR 7.0/7.1. After setting up the look I transfer all of them to jpegs. In CS5 I could see in save status window that ACR was processing 2-4 p

  • Committed SCN in Undo header slot (Transaction table )

    Hi , When ever a transaction was committed the Committed SCN is recorded with the Change vector in redo logs and in Slot reserved for this transaction in undo segment header . At some later point in time another session may read one of those blocks a

  • RUNTIME ERROR! While syncing contacts from 9900 to windows contacts

    BlackBerry Desktop Software Version :- 7.1.0.37 BlackBerry Device Software Version :- 7.1 Bundle 1646 (v7.1.0.523, Platform 5.1.0.393) BlackBerry Device :- Bold 9900 Windows 7 While syncing contacts to and fro , from the device and windows contacts,