Posts Tagged ‘java’

Creating an Action Class

Hello;
Now I am going to tell about custom action classes…
These classes help us to add custom actions to workflows…
We must write these classes in the psdi.common.action package.. We extend ActionCustomClass and override applyCustomAction method to make maximo do what we want to do…

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package psdi.common.action;
 
import java.io.PrintStream;
import java.rmi.RemoteException;
import psdi.mbo.MboRemote;
import psdi.server.MXServer;
import psdi.util.MXApplicationYesNoCancelException;
import psdi.util.*;
import com.custom.workorder.*;
 
public class newFlowAction
    implements ActionCustomClass
{
 
            newFlowAction()
            {
            }
 
            public void applyCustomAction(MboRemote mboremote, Object aobj[])
                throws MXException, RemoteException
            {
 
              com.custom.workorder.newWORemote mbo=(com.custom.workorder.newWORemote)mboremote;
	       if(mbo.getString("STATUS").equalsIgnoreCase("INPRG")){
                        mbo.getMboSet("OTHEROBJECT").deleteAll();
                 }
            }
}

Here on line 23 we cast our mbo to custom Workorder object. Now we are able to use workorder’s methods on mbo object. On line 24 we check if the status is INPRG or not…
And on line 25 if the status is INPRG we select the OTHEROBJECT relationship and delete all mbo’s that came with OTHEROBJECT relationship…

Then we compile the code… Rebuild Maximo.ear.. Redeploy it… Now you can use it in the related workflow..

Have a good day…

read comments here

Import AlnDomain from Excel Sheet

Hello;

Now I will explain a bit about importing from excel sheet. Here I will use Jexcel Api to read excel files. This script was written for Maximo 6.2.1, and I will use Jexcel Api 2.6.9 which can be downloaded from here.
Here is the code:

/*
 * addAlnDomain.java
 *
 * Created on September 2, 2008, 4:00 PM
 */
import java.io.File;
import java.io.PrintStream;
import jxl.*;
import psdi.app.system.*;
import psdi.mbo.MboRemote;
import psdi.util.MXSession;
/**
 *
 * @author  bbolek
 */
public class addAlnDomain {
 
    /** Creates a new instance of addAlnDomain*/
    public addAlnDomain() {
    }
 
    public void add(String filename) {
        try {
            MXSession s;
            s = MXSession.getSession();
            s.setHost("localhost:9898/MXServer"); //Server Name
            s.setUserName("wilson");
            s.setPassword("wilson");
            s.connect();
 
            Workbook workbook = Workbook.getWorkbook(new File(filename + ".xls"));
            Sheet sheet = workbook.getSheet(0);
            int k = 1;
            String description, value;
                MaxDomainSetRemote maxdomain=(MaxDomainSetRemote) s.getMboSet("MAXDOMAIN");
                maxdomain.setWhere("DOMAINID='DOMAINNAME'");
                maxdomain.reset();
                MboRemote maxDomain=maxdomain.getMbo(0);
            while (sheet.getCell(0, k).getContents().length() > 1) {
                value = sheet.getCell(0, k).getContents().toString();
                description = sheet.getCell(1, k).getContents().toString();
                System.out.println("VALUE :"+value+ " DESCRIPTION: "+description );
 
                ALNValueSetRemote alnSet =(ALNValueSetRemote) maxDomain.getMboSet("ALNDOMAINVALUE");
                ALNValueRemote aln = null;
                aln = (ALNValueRemote) alnSet.addAtEnd();
                aln.setValue("VALUE", value);
                aln.setValue("DESCRIPTION", description);
	        alnSet.save();
                k++;
            }
        } catch (Exception E) {
            E.printStackTrace();
        }
}
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        addAlnDomain new_AlnDomain = new addAlnDomain();
        new_AlnDomain.add("Example");
    }
}

In here; between line 28-32 server settings are set. Then on line 34 excel workbook is opened.
On line 35 first sheet is selected. On line 39 the domain with name “DOMAINNAME” is selected.
Line 42 shows that the loop will continue if there is a value on the first column of excel.
Line 43 and 44 reads the excel and sets the variables. And on line 48 we create a new ALNDomain mbo. And on 49 we added it to the AlnDomainSet.
Then we bind the variables and save the MboSet…
On line 62 we set the excel filename…Here it is Example.xls

All Mbo’s can be read from excel and imported to Maximo in this way. It is quite easy and customizable…For example you can set some rules to import in java like
-import data that starts with 1,
-import data which is like ‘%10%’
-etc…

Have a good day…

read comments here