Как передать имена репозитория в виде массивов Java и повторить его в коде documentum?

1

У меня есть код ниже, чтобы определить статус для одного документа docbase (test1), чтобы проверить, запущен ли он. Теперь я хочу изменить свой ниже код, чтобы проверить состояние еще двух репозиториев, названных test2, test3 присутствует на одном сервере содержимого. Может ли кто-нибудь предложить мне изменения, которые мне нужно сделать для моего кода ниже, чтобы реализовать это?

Мне нужно передать эти значения имен docbaseName как массивы, но я не знаю, как это сделать, и повторите его, чтобы проверить статус каждого из трех docbaseName. В настоящее время я выполняю только одно имя docbaseName, с которым я пытался использовать мои способы: static String[] docbaseName = {"test1","test2","test3"}; но это не сработает. Может кто-нибудь предложить изменения, которые мне нужно сделать здесь? Любой образец кода поможет!

import com.documentum.fc.common.*;
import com.documentum.fc.client.*;
public class DocumentumRepoStatus
{
    static IDfSession session;
    static final String osFileSeparator = System.getProperty("file.separator");
    static String docbaseName = "test1";
    static String userName = "user";
    static String passWd = "test123";

    static void parseArgs( String args[] )  // these are the command line args
    {
        final int MUST_HAVE_FLAGS = 1;
        int i;

        if ( args.length < (MUST_HAVE_FLAGS + 1) ) {
            System.out.println("Not enough arguments.");

        }
        else {

            for (i=0; i < args.length; i++) 
            {
                if ( ! args[i].startsWith("-") ) {
                    System.out.println("Error parsing argument: " + args[i]);
                    System.out.println("Expecting a flag parameter starting with dash ('-')");

                }
                if ( args[i].equalsIgnoreCase("-docbase_name") ) {
                    i++;
                    docbaseName = args[i];
                }
                if ( args[i].equalsIgnoreCase("-user_name") ) {
                    i++;
                    userName = args[i];
                }
                if ( args[i].equalsIgnoreCase("-password") ) {
                    i++;
                    passWd = args[i];
                }

            }       // end of for loop
        }           // end if if/else

        if (docbaseName.length() == 0 ) {
            System.out.println("Missing required argument -docbase_name.");

        }
        // If the user_name argument is not passed in, then trusted host for the Documentum login
        // is assumed (login as the OS user).  DFC, however requires a user name, so we will
        // retrieve the username of the current user using the Java Standard System properties.
        //
        if (userName.length() == 0 ) {
            userName = System.getProperty("user.name");

        }
    }


  static void connectToDocbase()
  {
        IDfLoginInfo li = new DfLoginInfo();
        li.setUser( userName );
        li.setPassword( passWd );
        li.setDomain( "" );
        try
        {
            IDfClient dfc = DfClient.getLocalClient();
            session = dfc.newSession(docbaseName, li );
            System.out.println("Successful connection to Docbase " + docbaseName);
        } 
        catch (DfException e) 
        {
            System.out.println("Unable to connect to docbase: " + e.toString() );
            System.exit( -1 );
        }
  }     

    static void getSessionInfo()
    {
        try
        {
           System.out.println("");
           System.out.println(" DM Session Properties: " );
           System.out.println(" DM Server Version    : " +  session.getServerVersion() );
           System.out.println(" DM Session ID        : " +  session.getSessionId());
           System.out.println(" DM Docbase ID        : " +  session.getDocbaseId());
           System.out.println(" DFC Version          : " +  DfClient.getDFCVersion() );
           System.out.println(" DM OwnerName         : " +  session.getDocbaseOwnerName() );


        }
        catch (DfException e)
        {
            System.out.println("Unable to retrieve DM server info: " + e );
        }
    }   


    public static void main (String[] args)
    {       
        connectToDocbase();
        getSessionInfo();       

    }
}
Теги:
arrays
documentum
dfc
documentum6.5

1 ответ

1
Лучший ответ

Вы можете изменить код следующим образом. Вам нужно отправить несколько имен базовых документов.

-docbase_name test1 test2 test3

В командной строке.

import com.documentum.fc.common.*;
import com.documentum.fc.client.*;
public class DocumentumRepoStatus
{
    static IDfSession session;
    static final String osFileSeparator = System.getProperty("file.separator");
    static String[] docbaseNames = new String[] { "test1", "test2", "test3"};
    static String userName = "user";
    static String passWd = "test123";

    static void parseArgs( String args[] )  // these are the command line args
    {
        final int MUST_HAVE_FLAGS = 1;
        int i;

        if ( args.length < (MUST_HAVE_FLAGS + 1) ) {
            System.out.println("Not enough arguments.");

        }
        else {

            for (i=0; i < args.length; i++) 
            {
                if ( ! args[i].startsWith("-") ) {
                    System.out.println("Error parsing argument: " + args[i]);
                    System.out.println("Expecting a flag parameter starting with dash ('-')");

                }
                if ( args[i].equalsIgnoreCase("-docbase_name") ) {
                    i++;
                    docbaseNames = args[i].split(" ");
                }
                if ( args[i].equalsIgnoreCase("-user_name") ) {
                    i++;
                    userName = args[i];
                }
                if ( args[i].equalsIgnoreCase("-password") ) {
                    i++;
                    passWd = args[i];
                }

            }       // end of for loop
        }           // end if if/else

        if (docbaseName.length() == 0 ) {
            System.out.println("Missing required argument -docbase_name.");

        }
        // If the user_name argument is not passed in, then trusted host for the Documentum login
        // is assumed (login as the OS user).  DFC, however requires a user name, so we will
        // retrieve the username of the current user using the Java Standard System properties.
        //
        if (userName.length() == 0 ) {
            userName = System.getProperty("user.name");

        }
    }


  static void connectToDocbase()
  {
        IDfLoginInfo li = new DfLoginInfo();
        li.setUser( userName );
        li.setPassword( passWd );
        li.setDomain( "" );
        for(int i=0;i<docBaseNames.length;i++) {
            try
            {
                IDfClient dfc = DfClient.getLocalClient();
                session = dfc.newSession(docbaseNames[i], li );
                System.out.println("Successful connection to Docbase " + docbaseName);
                getSessionInfo();
            } 
            catch (DfException e) 
            {
                System.out.println("Unable to connect to docbase: " + e.toString() );
                continue;
            }
        }
  }     

    static void getSessionInfo()
    {
        try
        {
           System.out.println("");
           System.out.println(" DM Session Properties: " );
           System.out.println(" DM Server Version    : " +  session.getServerVersion() );
           System.out.println(" DM Session ID        : " +  session.getSessionId());
           System.out.println(" DM Docbase ID        : " +  session.getDocbaseId());
           System.out.println(" DFC Version          : " +  DfClient.getDFCVersion() );
           System.out.println(" DM OwnerName         : " +  session.getDocbaseOwnerName() );


        }
        catch (DfException e)
        {
            System.out.println("Unable to retrieve DM server info: " + e );
        }
    }   


    public static void main (String[] args)
    {       
        connectToDocbase();
    }
}
  • 0
    Спасибо за ответ, Шазин, но я получаю сообщение об ошибке здесь в строке для (String docBaseName: docBaseNames) приведенного выше кода. В сообщении об ошибке говорится, что «для каждого оператора доступны только если уровень источника равен 5.0». Можете ли вы предложить, как исправить эту проблему?
  • 1
    Вы используете JDK 1.4. или более низкая версия. Тогда вам нужно изменить код. Пожалуйста, проверьте редактирование.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню