This blog is going to close down in 30 days.
I have not shared any knowledge for more then a year. The reason being I am not completely focusing on Maximo these but more into Depops tools/methods and how I can assist my customers to implement CI/CD for Maximo implementations.
There is not much value in what I had posted before as it was for 7.1 and 7.5 and currently we are on 22.214.171.124.
So, adios amigos!
Sometimes there can be a situation when you want to invoke a webservice on Mbo Save or delete or from a WorkFlow action class and do not want to go through building the integration components.
So, you straight away want to call this webservice from your custom code. One of the option in that case would be to use “WSCallClient”.
This class can be found in psdi.iface.webservices package.
OMElement respOME = callClient.invokeWebService(servicename,endPointUrl, omeObject, null, null, null, action, null, soapVersion, null, mxUsername,mxPassword, null);
The omeObject above is the service payload object.
In WebServicesUtil there are some utility methods like “convertToOMElement” where you can pass raw xml and it will give back an OMElement payload object.
Checkout maximo java docs for details on all the methods in WSCallClient and WebServicesUtil classes.
There is a very useful presentation on performance tuning and overall best practices.
Have a look at below:
Event Password = tiv0li (0 is a zero).
Consider the following scenario:
You want to add a new status for Workorder which is a Synonym for an existing one. This status is only visible based on a certain Work Type.
This looks very simple but there is just one small trick we need to achieve this.
First create the condition in Conditional Expression application as below:
:WORKTYPE = ‘ABC’
Go to Domains application and add the new status in WOSTATUS domain. Lets call this as “REVW”.
In View Modify conditions select the condition which checks the worktype as per below screenshot. When you test you will get an error “WorkType” attribute not found. The trick is to add a field WORKTYPE to WOCHANGESTATUS table. Because, when this condition is used on selecting the status ABC it also tries to validate on the dialog table which in this case is a non-persistent table called WOCHANGESTATUS. Let me know if you have any questions.
Lets say you want to change the default behavior of a control used in Maximo UI using conditional UI, how do you identify which property is supported by which control?
Lets say which properties can be controlled for a textbox?
The answer to this question is very simple. Just go to the following xml file:
Find whichever control you want to manage using Conditional UI, search by term name=”textbox” for a textbox and so on and so forth and you will come across all the properties supported by this control and use them on your conditional ui screen like inputmode=readonly.
Thats it, so easy and we do not have to remember anything 🙂 everything’s there in that control-registry.xml file.
Sometimes there is a situation when we want to trigger an outbound interface at certain specific time. Like based on a cron task in Maximo.
There is a very useful in MicService for this.
MicService is the service class for Outbound Integration services.
public void exportData(java.lang.String ifaceName,
- This method will be called from GUI for bulk data loading from MAXIMO to external system
- Specified by:
exportData in interface
ifaceName – Give name of channel.
sender – Give external system name.
where – Give where clause.
userInfo – Give reference to UserInfo object.
MXException – MAXIMO exception
java.rmi.RemoteException – Remote exception
This method you can invoke in a Cron Task Class so when the cron is executed the outbound interface is triggered. The outbound interface will process records it finds in the where clause.
I hope this helps.