首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Primavera API创建udfcode本地模式

Primavera API创建udfcode本地模式
EN

Stack Overflow用户
提问于 2013-12-02 14:11:38
回答 2查看 1.5K关注 0票数 0

我知道在哪里可以找到通过API添加primavera UDF的示例吗?我的代码在下面,但是当我运行它的时候没有任何反应。我可以连接到数据库,读取UDF,删除udf,但不能创建

谢谢

代码语言:javascript
复制
package apitest;

  import com.primavera.bo.base.u;
  import com.primavera.common.value.ObjectId;
  import com.primavera.integration.client.*;
  import com.primavera.integration.client.Session;
  import com.primavera.integration.client.EnterpriseLoadManager;
  import com.primavera.integration.client.RMIURL;
  import com.primavera.integration.common.DatabaseInstance;
  import com.primavera.integration.client.bo.BOIterator;
  import com.primavera.integration.client.bo.object.Project;
  import com.primavera.integration.client.bo.object.UDFCode;
  import com.primavera.integration.client.bo.InternalBOHelper;
  import com.primavera.integration.client.bo.helper.UDFCodeHelper;
  public class API
  {

 public static void main( String[] args )
{
    System.setProperty("primavera.bootstrap.home","C:\\P6IntegrationAPI_1");
    Session session = null;
    try
    {
        DatabaseInstance[] dbInstances = Session.getDatabaseInstances(
            RMIURL.getRmiUrl( RMIURL.LOCAL_SERVICE ) );

        // Assume only one database instance for now, and hardcode the username and
        // password for this sample code
        session = Session.login( RMIURL.getRmiUrl( RMIURL.LOCAL_SERVICE ),
            dbInstances[0].getDatabaseId(), "admin", "admin" );


        //u.delete(session, (UDFCode)(new String ("High")));

        UDFCode u = new UDFCode(session);

        u.setCodeValue("cdc");
        u.setDescription("cdcds");    
        u.setObjectId(ObjectId.USESSION_OVERRIDE_ID);
        u.setCodeTypeObjectId(ObjectId.USESSION_OVERRIDE_ID);
        u.setSequenceNumber(0);

        u.create();            


        System.out.println("cdcx");


    }
    catch ( Exception e )
    {
        System.out.println(e.getCause());
    }
    finally
    {
        if ( session != null )
            session.logout();
    }
}

}

EN

回答 2

Stack Overflow用户

发布于 2014-02-11 00:45:29

P6中的UDF字段实际上是3种类型的表/类。

  1. UdfType -是UDF的类型(名称,数据类型etc...)
  2. UdfValue -这是您想要设置的实际值,我猜?
  3. UdfCodes -这是UserDefined代码,所以它有点复杂,实际上是一个代码而不是字段!

因此,如果你想要一个简单的UDF,只需创建一个UdfType,这是全局数据的一部分,并且必须在你添加值之前存在。您也可以将其添加到客户端/web上,并在以后使用值填充它。

接下来,尝试在活动上插入一些UdfValues。这是我每次都要走的路;)

票数 0
EN

Stack Overflow用户

发布于 2014-09-19 20:09:11

使用以下模板代码连接到数据库。确保在使用之前更改引导程序、用户名和密码值。

代码语言:javascript
复制
import java.util.Date;
import java.util.Iterator;
import com.primavera.PrimaveraException;
import com.primavera.ServerException;
import com.primavera.bo.events.enm.SpreadPeriodType;
import com.primavera.common.value.Duration;
import com.primavera.common.value.ObjectId;
import com.primavera.common.value.spread.ActivitySpread;
import com.primavera.common.value.spread.ActivitySpreadPeriod;
import com.primavera.integration.client.GlobalObjectManager;
import com.primavera.integration.client.Session;
import com.primavera.integration.client.bo.BOIterator;
import com.primavera.integration.client.bo.BusinessObjectException;
import com.primavera.integration.client.bo.enm.ActivityStatus;
import com.primavera.integration.client.bo.enm.ProjectStatus;
import com.primavera.integration.client.bo.object.Activity;
import com.primavera.integration.client.bo.object.ActivityNote;
import com.primavera.integration.client.bo.object.EPS;
import com.primavera.integration.client.bo.object.NotebookTopic;
import com.primavera.integration.client.bo.object.Project;
import com.primavera.integration.client.bo.object.BaselineProject;
import com.primavera.integration.common.CopyActivityOptions;
import com.primavera.integration.common.CopyProjectOptions;
import com.primavera.integration.common.CopyWBSOptions;
import com.primavera.integration.common.DatabaseInstance;
import com.primavera.integration.client.bo.object.*;
import com.primavera.integration.client.*;
import com.primavera.integration.network.NetworkException;
import com.primavera.integration.*;


public class EPSFilter {

    static Session session = null;
    //static Session session = null;
     private static final String PRIMAVERA_BOOTSTRAP_HOME = "primavera.bootstrap.home";
    static final String PRIMAVERA_BOOTSTRAP_HOME_VALUE = "C:\\P6EPPM_832\\p6";
    static final String PRIMAVERA_USERNAME = "admin";
    static final String PRIMAVERA_PASSWORD = "admin";
    static final String PRIMAVERA_SYSTEM = "pmdb832_n1";

    static void openSession() throws PrimaveraException {
        for (DatabaseInstance dbi : Session.getDatabaseInstances(null)) {
          if (PRIMAVERA_SYSTEM.equalsIgnoreCase(dbi.getDatabaseName())) {

            session = Session.login(null, dbi.getDatabaseId(), PRIMAVERA_USERNAME, PRIMAVERA_PASSWORD);
            //session = Session.login (RMIURL.getRmiUrl( RMIURL.LOCAL_SERVICE ), "1", "admin", "admin");
            System.out.println("Connected to Primavera instance " + PRIMAVERA_SYSTEM);
            return;
          }
        }
        throw new RuntimeException("Error, Primavera instance " + PRIMAVERA_SYSTEM + " not found");
      }



    public static void main(String[] args) throws BusinessObjectException, ServerException, NetworkException {

         try {
             System.setProperty(PRIMAVERA_BOOTSTRAP_HOME, PRIMAVERA_BOOTSTRAP_HOME_VALUE);
            openSession();
        } catch (PrimaveraException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }

如果您仍然面临问题,您的代码应该遵循以创建UDF。请发布您收到的错误

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20321916

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档