Local directory node disappeared

I used Directory Utility to bind my OD Master to another LDAP server, and some how /LDAPv3/127.0.0.1 disappeared from the list of available servers in WGM and Directory Utility (DU). I removed the other LDAP server using DU, but it seems that I am unable to re-add 127.0.0.1 to the list of servers, even though Open Directory and kdc are running.
If I click "+" in DU to specify 127.0.0.1, it finds the local server and prompts for authentication. If I use a non-existent user, authentication fails. If I use a real user, such as the directory administrator account, it asks if it should overwrite the existing entry for a computer with the same name (the name of my server). If you select no, it does nothing, if you select yes, it appears to write the data to the directory, then says "Attempting to bind...", then does nothing. The Username, Password, Computer ID: screen won't go away, and it won't add the local directory.
So my search path is /Local/Default and /BSD/local.
If I use DU -> Search Policy, and change Search from Automatic to Custom, then click the "+", the list of "Available directory domains" to choose from is empty.
In the system.log has:
4/1/08 3:10:15 PM com.apple.KerberosAutoConfig[1150] Removing /Library/Preferences/edu.mit.Kerberos
4/1/08 3:10:15 PM com.apple.KerberosAutoConfig[1159] The machine is standalone
And this of course causes LDAP/slapd problems (from slapd.log):
Apr 1 15:14:13 myhostname slapd[40]: SASL [conn=63] Failure: GSSAPI Error: Unspecified GSS failure. Minor code may provide more information (Configuration file does not specify default realm)
If I manually add a /Library/Preferences/edu.mit.Kerberos file with the correct settings, the slapd errors stop, but my problem is still not solved; I cannot add the local directory to the search path.
Is there a text file somewhere that I could add /LDAPv3/127.0.0.1 to?
Thanks
Message was edited by: Brentk

I have a very similar issue with one other complication:
kerberos has stopped and does not seem to want to restart, I've gone over the dns setup which appears to have the correct record entries (lower case domain name, forward and reverse lookups return fqdn). I've been getting the same log entries.
Anyone have any ideas? thanks.

Similar Messages

  • RAC 10gr2 using ASM for RMAN a cluster file system or a Local directory

    The environment is composed of a RAC with 2 nodes using ASM. I have to determine what design is better for Backup and Recovery with RMAN. The backups are going to be saved to disk only. The database is only transactional and small in size
    I am not sure how to create a cluster file system or if it is better to use a local directory. What's the benefit of having a recovery catalog that is optional to the database?
    I very much appreciate your advice and recommendation, Terry

    Arf,
    I am new to RAC. I analyzed Alejandro's script. He is main connection is to the first instance; then through sql*plus, he gets connected to the second instance. he exits the second instance and starts with RMAN backup to the database . Therefore the backup to the database is done from the first instance.
    I do not see where he setenv again to change to the second instance to run RMAN to backup the second instance. It looks to me that the backup is only done to the first instance, but not to the second instance. I may be wrong, but I do not see the second instance backup.
    Kindly, I request your assistance on the steps/connection to backup the second instance. Thank you so much!! Terry

  • Lion server : local user account disappear after power outage

    On the server computer.After power outage I restart server the machine starts up ok.At login screen local user name disappear but there's others account same as client computer.I can log in to network account but can't log in as local.
    In sytem preference local user account is still there.
    I don't want to reinstall lion server .
    What can i do now?
    Thank you for your assistance.

    It sounds like the user directory is damaged. You might try booting into the recovery partition, running Disk Utility, and doing a Repair Volume (and maybe a repair permissions) on the server volume.

  • How can I schedule an export to excel format of an OBIEE Analysis or Dashboard to a local directory ?

    Hello,
    I would like to schedule with an agent some reports in OBIEE 11g that must be exported in excel format to a specific local directory.
    There is a need for a group of OBIEE users to have a set of reports ready (exported in .xlsx) every morning.
    Furthermore, if the previous scenario is possible then could I deliver a whole OBIEE Dashboard with the same way?
    Any input will be appreciated.
    Thank you in advance.

    Hi,
    As of now , we are not able to save the report in shared location in Linux /Unix.
    Windows it is possible.
    http://satyaobieesolutions.blogspot.com/2013/03/oracle-bi-ee-11g-calling-vb-scripts-to.html
    http://satyaobieesolutions.blogspot.com/2013/03/oracle-bi-ee-11g-calling-js-scripts-how.html
    Thanks,
    Satya Ranki Reddy

  • How can i save the data from the Oracle database to my local directory

    How can i save the data from the Oracle database to my local directory instead Of saving the data file to the Directory created on the Oracle Server ?
    I require to design the Procedure which will pull the data from various tables and needs to store the data in the Client's local directory.

    Since SQL*PLUS runs on the client, you can use SQL*PLUS to spool data to your local drive.
    You could also use the database to write a a specified drive where all users have access to (mapped network drive, e.g.). I wouldn't recommend doing it that way, but it is sometimes useful when the files are created in some nightly batch run.

  • Could not find agent library on the library path or in the local directory

    Hi all,
    I'm trying to write a jvmti agent that write any information in a mysql db. I've written a simple agent that work correctly and now I'll try to insert the mysqlpp library in my agent:
    1) I've added #include <mysql++.h>
    2) and I've added mysqlpp::Connection      conn(false); (global variable)
    I've modify my Makefile and the compiler and linker work correctly but when I test the agent the VM says "Could not find agent library on the library path or in the local directory"
    Below the code:
    -- analizer.cpp --
    #include <iostream>
    #include <stdlib.h>
    #include <jni.h>
    #include <string.h>
    #include <jvmti.h>
    #include <mysql++.h>
    #include "ClassDetail.cpp"
    #define CFN(ptr) checkForNull(ptr, __FILE__, __LINE__);
    static void checkForNull(void *ptr, const char* file, int line) {
        if(ptr == NULL) {
            std::cerr << "ERROR : NullPointerException in " << file <<":"<< line<<"\n";
            abort();
    static char* getErrorName(jvmtiEnv *jvmti, jvmtiError err) {
        jvmtiError errNum;
        char *name;
        errNum = jvmti->GetErrorName(err, &name);
        if( errNum != JVMTI_ERROR_NONE) {
            std::cerr << "ERROR : errore nel reprire l'error name " << errNum;
            abort();
        return name;
    #define CJVMTIE(jvmti, err) checkJvmtiError(jvmti, err, __FILE__, __LINE__);
    static void checkJvmtiError(jvmtiEnv *jvmti, jvmtiError err, const char* file, int line) {
        if(err != JVMTI_ERROR_NONE) {
            char *name = getErrorName(jvmti, err);
            std::cout << "ERROR : JVMTI error " << err << "("<<name<<") in "<<file<<":"<<line;
            abort();
    static void vmInit(jvmtiEnv *jvmti_env, JNIEnv *jni, jthread thread);
    static void startGCEvent(jvmtiEnv *jvmti_env);
    static void finishGCEvent(jvmtiEnv *jvmti_env);
    static jvmtiIterationControl JNICALL heapObject(jlong tag, jlong size, jlong* tag_ptr, void* userData);
    jrawMonitorID           lock;
    int                     gc_count;
    long                    heapSize = 0;
    bool                    heapCheck = false;
    mysqlpp::Connection      conn(false);
    JNIEXPORT jint JNICALL Agent_OnLoad(JavaVM *vm, char *options, void *reserved) {
        std::cout<<"OnLoad\n";
        jint                rc;
        jvmtiEnv            *jvmti = NULL;
        jvmtiError          err;
        jvmtiCapabilities   capabilities;
        jvmtiEventCallbacks callbacks;
        rc = vm->GetEnv((void **)&jvmti, JVMTI_VERSION);
        if( rc != JNI_OK) {
            std::cout << "ERROR : Errore nell'ottenere 'environment rc = " << rc;
            return -1;
        CFN(jvmti);
        err = jvmti->GetCapabilities(&capabilities);
        CJVMTIE(jvmti, err);
        CFN(&capabilities);
        capabilities.can_generate_garbage_collection_events = true;
        capabilities.can_tag_objects = true;
        CJVMTIE(jvmti, jvmti->AddCapabilities(&capabilities));
        CJVMTIE(jvmti, jvmti->CreateRawMonitor("agent lock", &lock));
        callbacks.VMInit = &vmInit;
        callbacks.GarbageCollectionStart = &startGCEvent;
        callbacks.GarbageCollectionFinish = &finishGCEvent;
        CJVMTIE(jvmti, jvmti->SetEventCallbacks(&callbacks, sizeof(callbacks)));
        jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_VM_INIT, NULL);
        jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_GARBAGE_COLLECTION_START, NULL);
        jvmti->SetEventNotificationMode(JVMTI_ENABLE, JVMTI_EVENT_GARBAGE_COLLECTION_FINISH, NULL);
        return 0;
    JNIEXPORT void JNICALL Agent_OnUnload(JavaVM *vm)
        std::cout<<"OnUnload\n";
    static void JNICALL worker(jvmtiEnv *jvmti, JNIEnv *jni, void *p) {
        std::cout << "worker";
        for (;;) {
            CJVMTIE(jvmti, jvmti->RawMonitorEnter(lock));
            while (gc_count == 0) {
                CJVMTIE(jvmti, jvmti->RawMonitorWait(lock, 0));
                jvmti->RawMonitorExit(lock);
            gc_count = 0;
            jvmti->RawMonitorExit(lock);
            /* Perform arbitrary JVMTI/JNI work here to do post-GC cleanup */
            if(!heapCheck) {
                heapCheck = true;
                jint        count;
                jclass    *classes;
                CJVMTIE(jvmti, jvmti->GetLoadedClasses(&count, &classes));
                ClassDetail *details = (ClassDetail*)calloc(sizeof(ClassDetail), count);
                for(int i = 0; i < count; i++) {
                    char *sig;
                    CJVMTIE(jvmti, jvmti->GetClassSignature(classes, &sig, NULL));
    CFN(sig);
    details[i] = ClassDetail(strdup(sig));
    CJVMTIE(jvmti, jvmti->SetTag(classes[i], (jlong)(ptrdiff_t)(void*) (&details[i])));
    heapSize = 0;
    CJVMTIE(jvmti, jvmti->IterateOverHeap(JVMTI_HEAP_OBJECT_EITHER, &heapObject, NULL));
    std::cout << "Heap Memory : " << heapSize<<'\n';
    heapCheck = false;
    static void vmInit(jvmtiEnv jvmti, JNIEnv jni, jthread thread) {
    jclass clazz = jni->FindClass("java/lang/Thread");
    jmethodID mid = jni->GetMethodID(clazz, "<init>", "()V");
    jthread _thread = jni->NewObject(clazz, mid);
    CJVMTIE(jvmti, jvmti->RunAgentThread(_thread, &worker, NULL, JVMTI_THREAD_MAX_PRIORITY));
    static void startGCEvent(jvmtiEnv *jvmti) {
    static void finishGCEvent(jvmtiEnv *jvmti) {
    std::cout << "****************************************************************** <<<<<<<<<<<< Finito gc\n";
    gc_count++;
    CJVMTIE(jvmti,jvmti->RawMonitorEnter(lock));
    CJVMTIE(jvmti,jvmti->RawMonitorNotify(lock));
    CJVMTIE(jvmti,jvmti->RawMonitorExit(lock));
    static jvmtiIterationControl JNICALL heapObject(jlong tag, jlong size, jlong* tag_ptr, void* userData) {
    if(tag != (jlong) 0) {
    std::cout << "Tag : " << tag<< '\n';
    ClassDetail detail = (ClassDetail) (void*) (ptrdiff_t) tag;
    char *sig = detail->getSignature();
    std::cout << "Class " << sig << " size : " << size<<'\n';
    heapSize += size;
    return JVMTI_ITERATION_CONTINUE;
    -- ClassDetail.cpp --class ClassDetail {
    private:
    char* signature;
    public:
    ClassDetail(char* signature){
    this->signature = signature;
    char* getSignature() { return this->signature;}
    --Makefile--########################################################################
    # Sample GNU Makefile for building JVMTI Demo waiters
    # Example uses:
    # gnumake JDK=<java_home> OSNAME=solaris [OPT=true] [LIBARCH=sparc]
    # gnumake JDK=<java_home> OSNAME=solaris [OPT=true] [LIBARCH=sparcv9]
    # gnumake JDK=<java_home> OSNAME=linux [OPT=true]
    # gnumake JDK=<java_home> OSNAME=win32 [OPT=true]
    # Source lists
    LIBNAME=analizer
    SOURCES=analizer.cpp
    MYSQLPP_LIB_PATH=/home/claudio/Desktop/Scaricati2/mysql++-3.0.6/mysqlpp_lib/lib/
    MYSQLPP_HEADER_PATH=/home/claudio/Desktop/Scaricati2/mysql++-3.0.6/mysqlpp_lib/include/mysql++
    MYSQL_PATH=/opt/mysql-5.0.51a-linux-i686-icc-glibc23
    # Solaris Sun C Compiler Version 5.5
    ifeq ($(OSNAME), solaris)
    # Tell gnumake which compilers to use
    CC=cc
    CXX=CC
    # Sun Solaris Compiler options needed
    COMMON_FLAGS=-mt -KPIC
    # Check LIBARCH for any special compiler options
    LIBARCH=$(shell uname -p)
    ifeq ($(LIBARCH), sparc)
    COMMON_FLAGS+=-xarch=v8 -xregs=no%appl
    endif
    ifeq ($(LIBARCH), sparcv9)
    COMMON_FLAGS+=-xarch=v9 -xregs=no%appl
    endif
    ifeq ($(OPT), true)
    CXXFLAGS=-xO2 $(COMMON_FLAGS)
    else
    CXXFLAGS=-g $(COMMON_FLAGS)
    endif
    # Object files needed to create library
    OBJECTS=$(SOURCES:%.cpp=%.o)
    # Library name and options needed to build it
    LIBRARY=lib$(LIBNAME).so
    LDFLAGS=-z defs -ztext
    # Libraries we are dependent on
    LIBRARIES= -lc
    # Building a shared library
    LINK_SHARED=$(LINK.cc) -G -o $@
    endif
    # Linux GNU C Compiler
    ifeq ($(OSNAME), linux)
    # GNU Compiler options needed to build it
    COMMON_FLAGS=-fno-strict-aliasing -fPIC -fno-omit-frame-pointer
    # Options that help find errors
    COMMON_FLAGS+= -W -Wall -Wno-unused -Wno-parentheses
    ifeq ($(OPT), true)
    CXXFLAGS=-O2 $(COMMON_FLAGS)
    else
    CXXFLAGS=-g $(COMMON_FLAGS)
    endif
    # Object files needed to create library
    OBJECTS=$(SOURCES:%.cpp=%.o)
    # Library name and options needed to build it
    LIBRARY=lib$(LIBNAME).so
    LDFLAGS=-Wl,-soname=$(LIBRARY) -static-libgcc -mimpure-text
    LDFLAGS += -lmysqlpp
    # Libraries we are dependent on
    LIBRARIES=
    # Building a shared library
    LINK_SHARED=$(LINK.cc) -shared -o $@
    endif
    # Windows Microsoft C/C++ Optimizing Compiler Version 12
    ifeq ($(OSNAME), win32)
    CC=cl
    # Compiler options needed to build it
    COMMON_FLAGS=-Gy -DWIN32
    # Options that help find errors
    COMMON_FLAGS+=-W0 -WX
    ifeq ($(OPT), true)
    CXXFLAGS= -Ox -Op -Zi $(COMMON_FLAGS)
    else
    CXXFLAGS= -Od -Zi $(COMMON_FLAGS)
    endif
    # Object files needed to create library
    OBJECTS=$(SOURCES:%.cpp=%.obj)
    # Library name and options needed to build it
    LIBRARY=$(LIBNAME).dll
    LDFLAGS=
    # Libraries we are dependent on
    LIBRARIES=
    # Building a shared library
    LINK_SHARED=link -dll -out:$@
    endif
    # Common -I options
    CXXFLAGS += -I.
    #CXXFLAGS += -I../agent_util
    CXXFLAGS += -I$(JDK)/include -I$(JDK)/include/$(OSNAME)
    CXXFLAGS += -I$(MYSQLPP_HEADER_PATH) -I$(MYSQL_PATH)/include -L$(MYSQLPP_LIB_PATH) -I$(MYSQLPP_LIB_PATH)
    # Default rule
    all: $(LIBRARY)
    # Build native library
    $(LIBRARY): $(OBJECTS)
         $(LINK_SHARED) $(OBJECTS) $(LIBRARIES)
    # Cleanup the built bits
    clean:
         rm -f $(LIBRARY) $(OBJECTS)
    # Simple tester
    test: all
         LD_LIBRARY_PATH=`pwd` $(JDK)/bin/java -agentlib:$(LIBNAME) -jar jvmti-test.jar
         #LD_LIBRARY_PATH=`pwd` $(JDK)/bin/java -agentlib:$(LIBNAME) -version
    # Compilation rule only needed on Windows
    ifeq ($(OSNAME), win32)
    %.obj: %.cpp
         $(COMPILE.cc) $<
    endif

    Did you make sure your library (call it x) starts is named libx.so (atleast, on linux, possibly libx.dll on windows, not sure)? It will not load otherwise, and you must specify -agentlib:x (rather than saying libx.so). Yes, it is "funny" how it gives the same uninformative error message for a wide variety of errors. It will also give you this same error message if there are still unresolved symbols upon loading your library (which would be my second guess).

  • Moving Mail Users from a Local Directory to Open Directory

    Hi,
    We have been running a standalone mail server for a few years. We have recently upgraded to 10.5 for all of our servers. We have also been running an Open Directory server for the last year or so. Now I am trying to move my email users from the Local Directory on the Mail server to the LDAP server. Obviously we do not want to change account names, so I find I need to delete the local user and then enable the user through the LDAP. This works fine, but I need to bring the original IMAP files/folders forward.
    My question is what is the best practice? I thought backing up the Mail folder in each user's Library and reimporting it would work, but it won't take the IMAP mbox (I can see all the .emlx files in the backup of the user's Mail folder).
    So again, I had a user called user1 in my mail server Local directory say server1. I also have an Open Directory server2 with the same username on it. I have bound server1 to server2. I can see the server2 (OD) accounts on the server1 (mail). I then need to delete user1 from Local server1 directory in order to enable mail to user1 from the OD. This does work, but again, I need bring the mail files/folders to the new OD account on server1.
    thanks,
    mike

    Tony,
    Let me check of the migration manual, thank you!
    I really thought this was going to easier than this. The current accounts are IMAP, and therefore when I "hook up" the new OD account, which doesn't really need anything done on the client side because it is the same username and password and server as the current Local account. When it syncs, the old emails on the IMAP account in the user's Mail program clear since the new OD account is empty on the server.
    I just really thought duplicating the Mail folder in the client's home Library would allow me to import the emails back in. I have tried highlighting the mailboxes (Inbox, and personal folders), archiving them, and then reimporting seemed to work, but I need to beat it up before I start working on live accounts. One account I did try lets me read the emails from the user, but when I try dragging them to the IMAP folders from the import folder, I get a NULL character problem on IMAP append error. NOT to chase that, but it was something else that tripped me up.
    You do bring up a good point, I think the accounts were originally setup as POP and IMAP. I'll chase some ideas about that.
    Let me play around, you've been great considering my awful explanation of this different situation.
    thanks again,
    mike

  • Unable to update this object because the following attributes associated with this object have values that may already be associated with another object in your local directory services

    Getting this error from DirSync
    Unable to update this object because the following attributes associated with this object have values that may already be associated with another object in your local directory services: [UserPrincipalName
    [email protected];].  Correct or remove the duplicate values in your local directory.  Please refer to
    http://support.microsoft.com/kb/2647098 for more information on identifying objects with duplicate attribute values.
    Quick eyeball and couldn't see the cause in the user account so used the script here:
    http://gallery.technet.microsoft.com/office/Fix-Duplicate-User-d92215ef
    And got these outputs:
    PS C:\Windows\System32\WindowsPowerShell\v1.0> Export-OSCADUserPrincipalName -UserPrincipalName "[email protected]" -Path .\outputs.csv
    WARNING: Cannot find objects with specified duplicate user principal name
    [email protected]
    Found 0 user(s) with duplicate user principal name.
    Where to from here?
    Richard P

    Hi,
    Did you talk about the Microsoft Azure Active Directory Sync tool ?
    If yes, this issue occurs if one or more of the following conditions are true:
    An object in the on-premises Active Directory has an SMTP address that's the same as the SMTP address of the object that's reporting the problem.
    An object in the on-premises Active Directory has a mail attribute that's identical to the object that's reporting the problem.
    An object already exists in your organizational account and has the same SMTP address or mail attribute as the object in the on-premises Active Directory
    More detail information, please refer to:
    http://support.microsoft.com/kb/2520976/en-us
    [Troubleshooting] Unable to update this object because the following attributes associated with this object
    http://blogs.technet.com/b/aadsyncsupport/archive/2014/05/20/troubleshooting-unable-to-update-this-object-because-the-following-attributes-associated-with-this-object.aspx
    Regards.
    Vivian Wang

  • Help with utl_file (read/write file from local directory)

    Need help reading/writing file on local machine from plsql using 10.2 DB.
    I am trying to read/write a file from a local directory(laptop) without success.
    I have been able to read/write to the database server directory but can't write to directory on local machine.
    The utl_file_dir parm has been set to * and the db restarted but I can't get it to work... Here's the plsql statement.
    out_file := UTL_FILE.FOPEN ( 'C:\PLSQL', 'TEST.TXT', 'W' ,32767);
    Whenever I run it continues to write to c:\PLSQL dir on the database server. Have looked at the "Directory" object and created MY_DIR = C:\PLSQL but it writes to the db server.
    Running 10.2 on a remote windows server, running PLSQL using sql*navigator.
    Thanks in advance for your help..

    I don't see how you expect the server to be able to see your laptop across the network, hack into it and start writing files. Even if it could, what if there is more than one laptop with a C: drive? How would it know which one to write to?
    Is there a shared drive on the server you can access via the laptop?

  • How to select variable filename from local directory with fn to load xml

    I would like to select a specific xml file to load from a local directory. The file name is composed of “Title” + “number sequence”.  I know the Title (in this case its XLink07), but I need to select the latest number sequence or the latest by date stamp.
    For example, the local directory has the following files:
    XLink01[36735298100].xml
    XLink02[36735298100].xml
    XLink02[36735298101].xml
    XLink07[36735298100].xml
    XLink07[36735298101].xml
    In this example I need to select file XLink07[XXXXXXXXXXX].xml where XXXXXXXXXXX is the highest number within the XLink07[XXXXXXXXXXX].xml files.  Title is Xlink07 and function should return Number sequence [36735298101]. Files with higher number sequence have later date stamps than files with lower number sequences. I need to select the highest number or the latest date stamp for the file that begins with XLink07….
    My action script to load the local .xml file without any function to select the correct file is:
    Security.allowDomain("*", "*")
    var xmlLoader:URLLoader = new URLLoader();
    xmlLoader.load(new URLRequest("XLink07[36735298101].xml"));
    xmlLoader.addEventListener(Event.COMPLETE, showXML);
    function showXML(e:Event):void {
    XML.ignoreWhitespace = true;
    var Innards:XML = new XML(e.target.data);
    tweet_name.text = Innards.XLink01[0].screen_name;
    tweet_1.text = Innards.XLink01[0].text;
    tweet_date.text = Innards.XLink01[0].created_at;
    Thanks for the help if anyone can script that function for me if its possible.

    If you develop for Flash browser plugin (not AIR), there is no way to read directories.

  • How to save a csv file in a local directory

    I am trying to save a regular csv file in a local directory. Any suggestions of how I should approach it. And also I was wondering how I would email that csv file to multiple users

    Use a PrintWriter and a FileOutputStream. Look in javax.mail.* for API's to do mailing, or open a socket connection to a pop server and post it.
    Posting these kind of questions to "new to java" might be more appropriate...

  • Sending an Email with Excel Attachment from Local directory

    Hi,
    I have a requirement : I want to send an email with an attachment which is exist on local  directory and currently I am using
    cl_bcs classes
    Thanks,
    Moderator message: Welcome to SCN!
    Moderator message: please do more research before asking, show what you have done yourself when asking.
    [Rules of engagement|http://wiki.sdn.sap.com/wiki/display/HOME/RulesofEngagement]
    [Asking Good Questions in the Forums to get Good Answers|/people/rob.burbank/blog/2010/05/12/asking-good-questions-in-the-forums-to-get-good-answers]
    Edited by: Thomas Zloch on Aug 4, 2011 5:15 PM

    Hi,
    I have a requirement : I want to send an email with an attachment which is exist on local  directory and currently I am using
    cl_bcs classes
    Thanks,
    Moderator message: Welcome to SCN!
    Moderator message: please do more research before asking, show what you have done yourself when asking.
    [Rules of engagement|http://wiki.sdn.sap.com/wiki/display/HOME/RulesofEngagement]
    [Asking Good Questions in the Forums to get Good Answers|/people/rob.burbank/blog/2010/05/12/asking-good-questions-in-the-forums-to-get-good-answers]
    Edited by: Thomas Zloch on Aug 4, 2011 5:15 PM

  • Putting the result of scheduler to a local directory

    We have BI Publisher running on a Solaris box.
    Our interest is to have the result(csv file) of a an already designed report in BI Publisher to automatically be put to a local directory on a local directory every time the schedule runs.
    I have gone over the bursting and splitting guides in my reach but i have not got a solution for outputting the complete result of the report(as a whole) to a specified directory. Most of the guides split the designed reports by a KEY on the dataset result and deliver the results in different files as specified by the key.
    My interest however is not to split the result of the Dataset in any way, but rather output the Dataset query result as a whole every time the schedule runs.
    Please advise on the possibility of this.

    I would re-post to the Flex Data Services forum.

  • API to browse local directory/folders

    can I know what API should I use to browse local directory for files?
    we would like to allow our users to upload files (many of them) thru FTP to a directory.
    and we will create a concurrent programs to browse the directory, for each file, we will open it and processing it.

    If you want to let users browse their file system and upload files into database.Let us know which application you are using for UI.Its possble in Oracle Forms as well as in OAF.
    Let us know how user is interacting with system.
    Thanks
    AJ

  • Download ABAP Objects to a local directory

    Hi! Just want to ask if there's someone who knows any program that can download a copy of ABAP Objects to a local directory? Thanks a lot!!!

    Hi Jason.
    Find the Below code to download ABAP Source code to your local directory . Before downloading just create " :\source " directory.
    Hope this info Helps YOU.
    <i>Reward Points If It Helps YOU.</i>
    Regards,
    Raghav
    [code]*
    Download and Upload your ABAP program from/to your local harddisk.
    Allows individual or mass transfering of ABAP program.
    Before using, create a folder c:\Source
    REPORT ZDOWN_UP_LOAD
            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:\Source\'.
    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-LINE = MTAB_PROGRAM_TEXTS-ENTRY .
           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 serve
         OPEN DATASET F_FILENAME FOR OUTPUT IN TEXT MODE encoding default.
         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 encoding default.
         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-key = FTAB_PROGRAM_FILE-line.
                 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
    *TEXPZKBPROGS
    IDIR     File Download Options (File Selection)
    IFIL     File Options
    IFNA     Enter filename below (under File Options)
    IH01     Prog Name
    IH03     Program Description
    ISNG     Upload a single file
    IUDL     Upload to SAP/Download from SAP
    IUPL     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
    *HEADZKBPROGS
    DOKU      ZHRBDC54
    *DOKLZKBPROGS
    *--- End of Program[/code]

Maybe you are looking for

  • Use the default format and partition step to format disk0 partition 1 in multiple disks sutiation

    As we know,we need to disable the default format and partition step in ts to let mdt deploy os on C and leave the other partitions stay safe when there is only one disk on pc,and the way of installing operation system is logical drive letter store in

  • Macbook Air (and Ipad) do not detect Airplay devices

    I am literally going crazy already with this issue. I have  a Macbook Air OSX Version 10.9.2, an iPad 2 and the latest Apple tv. Airplay used to work but a few months ago it just stopped working. We bought a brand new router, all devices are connecte

  • Incremental Updates and PKCS7 Signatures

    Hello, this is my first message in this forum and I thank you in advance for your help. I am developing a component to countersign PDFs. I was able to place the first signature ok, but when a countersign it problems come. The way I countersign the do

  • OS X 10.6.4 troubles with SMB networking

    Hello, I found, in my iMac, when for some reason the mounted SMB shares are no available for some time (i.e. the server providing them, rebooting), then available again (server completed reboot and shares up), I cannot navigate the mounted shares, an

  • Mail banner gone

    Suddenly I can no longer see the banner across the top for File, Edit, Menu through the Search icon when Mail is open.  Also, when an email is open, the only options I have are Done and Cancel. No little red and green dots for saving and diminishing,