Menu Bar

Auto Number Generation for Object Type using TBO




STEP: 1

Create a Custom Type with super type Null as per requirement   using DQL or Composer
Using DQL:

create type seq_number(min_no string(32),max_no string(32))with supertype null;
select * from dm_type where "owner"='sravanth'
create seq_number object set min_no='0',set max_no='99999999'
select * from seq_number
update seq_number object set min_no='1'where r_object_id='00de75d180000501'


STEP: 2 
Create a Custom type to which u want to generate a Unique no:
Using DQL:

create type custom_details (emp_id string(16),emp_name string(32),emp_address string(48)) with supertype dm_document;

STEP: 3
Using Composer:






Write a TBO to generate a Unique No for every object create on a particular Type


STEP: 4

Creating TBO:
import com.documentum.com.DfClientX;
import com.documentum.com.IDfClientX;
import com.documentum.fc.client.DfDocument;
import com.documentum.fc.client.IDfBusinessObject;
import com.documentum.fc.client.IDfCollection;
import com.documentum.fc.client.IDfQuery;
import com.documentum.fc.client.IDfSysObject;
import com.documentum.fc.common.DfException;
import com.documentum.fc.common.DfLogger;
import com.documentum.fc.common.IDfDynamicInheritance;
import com.documentum.fc.common.IDfId;

public class AutoNumber extends DfDocument implements IDfBusinessObject,
            IDfDynamicInheritance {

      private String vendor = "This is sample Application";
      private String version = "1.0";

      @Override
      public String getVendorString() {
            // TODO Auto-generated method stub
            return null;
      }

      @Override
      public String getVersion() {
            // TODO Auto-generated method stub
            return null;
      }

      @Override
      public boolean isCompatible(String arg0) {
            // TODO Auto-generated method stub
            return false;
      }

      @Override
      public boolean supportsFeature(String arg0) {
            // TODO Auto-generated method stub
            return false;
      }

      /**
       * Call this method when import/create is happening
       *
       * @param
       * @param
       */
      public void save() {
            try {
                  System.out.println("*******TBO CALLED*********");
                  IDfId newId = getObjectId();
                  int number = 0;

                  IDfSysObject docObj = (IDfSysObject) getSession().getObject(newId);

                  IDfCollection col = null;
                  IDfClientX clientx = new DfClientX();

                  IDfQuery q = clientx.getQuery();
                  q.setDQL("select min_no from seq_number;");
                  col = q.execute(getSession(), IDfQuery.DF_READ_QUERY);
                  while (col.next()) {
                        number = Integer.parseInt(col.getString("min_no"));
                  }
                  number = number + 1;
                  // Give it the query
                  q.setDQL("update seq_number object set min_no='" + number + "'where r_object_id='00de75d180000501'");
                  q.execute(getSession(), IDfQuery.DF_READ_QUERY);
                  String idAttr = "" + number;
                  docObj.setString("emp_id", idAttr);
                  super.save();
                  q.setDQL("update verinon_details objects set empid='" + idAttr + "'");
                  DfLogger.trace(this, "AfterImport/New  : " + newId, null, null);

                  System.out.println("********TBO END**********");

            } catch (DfException dfe) {
                  System.out.println("**********InheritFromFolderToDoc::save():"+ dfe.toString());
            }

      }
}

STEP: 5

Create a Jar file for above TBO Class

  
 STEP: 6

Create a Jar Definition:


 STEP: 7

Create a Module:
Note : Module Name must be same as a created Custom type


After creation of Module now validate and deploy the TBO.



No comments:

Post a Comment