<?php
	header("Content-Type:text/xml"); 
	echo '<?xml version="1.0" encoding="utf-8"?'.">\r";
?>
<rss version="2.0"
    xmlns:atom="http://www.w3.org/2005/Atom"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
    xmlns:admin="http://webns.net/mvcb/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:content="http://purl.org/rss/1.0/modules/content/">

    <channel>
    
    <title>Strategic Asset Management RSS Feed</title>
    <link>http://www.taic-sams.net/</link>
    <description></description>
    <dc:language>en</dc:language>
    <dc:creator>mchrisman@taic.net</dc:creator>
    <dc:rights>Copyright 2010</dc:rights>
    <dc:date>2010-08-25T02:30:55+00:00</dc:date>
    <admin:generatorAgent rdf:resource="http://www.expressionengine.com/" />
    

    <item>
      <title>UserExit Class in  Maximo 7</title>
      
      <link>http://webprod.taic.net/blog/article/userexit-class-in-maximo-7/</link>
      <guid>http://webprod.taic.net/blog/article/userexit-class-in-maximo-7/#When:02:30:55Z</guid>
      
      <description><![CDATA[
			
			<p>If you are used to creating a UserExit class in Maximo 6 (MEA), then you will find a couple of big differences in Maximo 7. Some things are the same as in MEA. The main method you override are setUserValueIn() and setUserValueOut(). You still have the irData and erData parameters. The difference is how you access the data within irData and erData. The data is no a true XML message and you have to use XML commands to access the data.</p>  <p>The first step in accessing data is to call the breakData() method:</p>  <blockquote>   <pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #ffffff">irData.breakData();</pre></pre>
</blockquote>

<p>This loads the xml record into irData so you can access it. If you try to use a getCurrentDataAsString() method without first calling breakData(), then it will always return no data. You need to call this for both irData and erData, for inbound setUserValueIn() and for outbound setUserValueOut(). Once you call this method, you can now access the data using getCurrentData… methods, but only for data elements on the base current record. Remember, an XML message can have sub records. For example you can have a record with ASSET and ASSETSPEC data. At this point, you can only access data on the ASSET record. If however, you want to access data elements from an ASSETSPEC record, you have to do the following:</p>

<blockquote>
  <pre><pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,'Courier New',courier,monospace; background-color: #ffffff">irData.setAsCurrent(irData.getChildrenData(&quot;<span style="color: #8b0000">ASSETSPEC</span>&quot;),0);</pre></pre>
</blockquote>

<p>You have to specify which record you want (the example above sets the first record). Now all calls to getCurrentData… is accessing data from AssetSpec and data elements from Asset are not accessible (unless you call irData.setAsCurrent(irData.getChildrenData(&quot;ASSET&quot;),0)).</p>

<p>One last thing is that this being XML, the names of all data elements are case sensitive. This means you need to know what case the tag names are in. </p>

<p>&#160;</p>

<p>For more on UserExit Class, see: <a href="http://www.taic-sams.net/index.php/ibm-maximo/blog/mea-userexit-class/" target="_blank">MEA: UserExit Class</a></p>

<p>&#160;</p>

<div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:967af30b-0697-4325-b7bb-65073e41deca" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">Technorati Tags: <a href="http://technorati.com/tags/Maximo+Integration+Framework" rel="tag">Maximo Integration Framework</a>,<a href="http://technorati.com/tags/java" rel="tag">java</a></div>
			
      ]]></description>
            
      <dc:subject>Maximo, Maximo 7, Maximo: MIF, Maximo: Programming</dc:subject>
      <dc:date>2010-08-25T02:30:55+00:00</dc:date>
    </item>

    <item>
      <title>WebSphere and the exploded ear</title>
      
      <link>http://webprod.taic.net/blog/article/websphere-and-the-exploded-ear/</link>
      <guid>http://webprod.taic.net/blog/article/websphere-and-the-exploded-ear/#When:15:20:32Z</guid>
      
      <description><![CDATA[
			
			<p>As a developer, I have always perferred using Weblogic or WebSphere for one reason: The exploded ear (see <a href="http://www.taic-sams.net/index.php/ibm-maximo/blog/running-maximo-in-an-exploded-ear-weblogic/" target="_blank">Running Maximo in an Exploded Ear (WebLogic)</a> ). Unfortunately, WebSphere does not offer such a time saving method of running Maximo. At least I thought so, but thanks in large part of a comment on this blog (thanks Greg Aluise) it is possible to come very close to an exploded ear. it is not truly running in exploded ear, rather it is a way to update the files already deployed in Websphere. This allows you to no longer have to uninstall and install the ear every time. This can be a huge time saver. Here are the steps:</p>  <p>Requirements:</p>  <ol>   <li>Deploy the Maximo ear as you normally would. This has to be done once as we will be updating the files that WebSphere deployed. </li>    <li>Locate where Websphere deployed the Maximo ear. It is found at: \ibm\WebSphere\AppServer\profiles\*profilename*\installedApps\*cellname*\MAXIMO.ear. Note that MAXIMO.EAR is a folder name, not a file name. You will need to access this folder a lot so make a nice shortcut to it. *profilename* and *cellname* will be dependent on your installation. </li>    <li>Locate where Maximo creates its ear file. It is found at: \ibm\SMP\maximo\deployment\default. Again, a shortcut will be helpful. </li> </ol>  <p>So, once you have made your coding changes and need to deploy them, follow these steps:</p>  <ol>   <li>Build the Maximo ear file &#40;\ibm\SMP\maximo\deployment\buildmaximoear.cmd&#41; </li>    <li>Stop the MXServer application server. </li>    <li>Open the Ear file &#40;.ear file is really a zip file so any zip tool will work&#41;. </li>    <li>Open the WebSphere deployment folder </li>    <li>Now copy all needed files from the ear to the deployment folder. If you made changes to the MBO classes, then you can just copy the businessobject.jar file. If you made changes to the screen, then you will have to open the maximouiweb.war file &#40;again, it is really just a zip file&#41; and copy the files to the maximouiweb.war folder in the deployment folder. Copy any other files you changed that need to be deployed. You can copy entire folders or you can just copy the files you changed (.jar files are really just zip files too). </li>    <li>Start the MXServer application server. </li> </ol>  <p>That's it, your changes are now deployed. Not as simple and easy as Weblogic, but still faster than uninstall and install of the Maximo.ear every time. </p>  <p>Of course, having figured it out wasn’t good enough, I also had to create a script that I could just run and it would do it all for me (sign of a good developer is strong laziness when it comes to repetitive tasks). The script is a standard Windows command (but I only use basic command and it would be very easy to convert it to Unix). It should run on any Windows computer without anything other than Maximo/WebSphere installed. You will need to edit it and modify the parameters for your configuration. I would not use this script for any production environment as it has no error handling (if something goes wrong while running the script, the script just keeps running), but find it very useful for a developer’s environment. (I would have just displayed to code but my blog loves to destroy any code posted.)</p>  <blockquote>   <div class="wlWriterEditableSmartContent" id="scid:fb3a1972-4489-4e52-abe7-25a00bb07fdf:2d581213-16fd-421d-82fe-705a96dd2bd2" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"><p> <a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterWebSphereandtheexplodedear_8361deploy1.cmd" target="_blank">deploy.cmd</a></p></div> </blockquote> <style type="text/css">


.csharpcode, .csharpcode pre
{
 font-size: small;
 color: black;
 font-family: consolas, "Courier New", courier, monospace;
 background-color: #ffffff;
 /*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
 background-color: #f4f4f4;
 width: 100%;
 margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>  <p>I hope you find this as useful as I do. Happy coding.</p>  <p>&#160;</p>  <div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:e628a340-c571-4130-81bf-46c26d4c7a1d" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">Technorati Tags: <a href="http://technorati.com/tags/Maximo" rel="tag">Maximo</a>,<a href="http://technorati.com/tags/WebSphere" rel="tag">WebSphere</a>,<a href="http://technorati.com/tags/Exploded+ear" rel="tag">Exploded ear</a></div>
			
      ]]></description>
            
      <dc:subject>Maximo, Maximo 7, Maximo: Programming</dc:subject>
      <dc:date>2010-08-13T15:20:32+00:00</dc:date>
    </item>

    <item>
      <title>MIF &amp;ndash; Logical Management Operations</title>
      
      <link>http://webprod.taic.net/blog/article/mif-logical-management-operations/</link>
      <guid>http://webprod.taic.net/blog/article/mif-logical-management-operations/#When:19:34:15Z</guid>
      
      <description><![CDATA[
			
			<p>Logical Management Operations (LMOs) are a part of the Integration Module component that is new to Maximo 7. LMOs are a common data layer that defines actions the system takes on Operational Management Product.</p>  <blockquote>   <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFLogicalManagementOperations_14092LMO-MainScreen_2.gif"><img title="LMO-MainScreen" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="98" alt="LMO-MainScreen" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFLogicalManagementOperations_14092LMO-MainScreen_thumb.gif" width="244" border="0" /></a> </p> </blockquote>  <p>Fields</p>  <blockquote>   <table cellspacing="0" cellpadding="2" width="800" border="1"><tbody>       <tr>         <td valign="top" width="161">           <p align="center"><strong>Field</strong></p>         </td>          <td valign="top" width="639">           <p align="center"><strong>Description</strong></p>         </td>       </tr>        <tr>         <td valign="top" width="161">Name</td>          <td valign="top" width="639">This is the name of the class file you created. This is part of the unique key.</td>       </tr>        <tr>         <td valign="top" width="161">Description</td>          <td valign="top" width="639">This is a description of the LMO</td>       </tr>        <tr>         <td valign="top" width="161">Name Space</td>          <td valign="top" width="639">This is the namesapce of the class you created. This is the second part of the unique key.</td>       </tr>        <tr>         <td valign="top" width="161">Invocation Pattern</td>          <td valign="top" width="639">This is how the LMO is to be invoked. Values are:            <br />&#160; Synchronous: LMO will wait for a response.             <br />&#160; Asynchronous one-way: LMO will not wait for a response             <br />&#160; Asynchronous deferred response: LMO will ask for the response             <br />&#160; Asynchronous Call Back: LMO will wait for the OMP to call back for a response.</td>       </tr>        <tr>         <td valign="top" width="161">Source Object Name</td>          <td valign="top" width="639">Source MBO</td>       </tr>        <tr>         <td valign="top" width="161">Response Object Name</td>          <td valign="top" width="639">Response MBO</td>       </tr>        <tr>         <td valign="top" width="161">Input</td>          <td valign="top" width="639">Denotes if this LMO is for input or output.</td>       </tr>        <tr>         <td valign="top" width="161">Name</td>          <td valign="top" width="639">This is the attribute from the Source Object Name</td>       </tr>        <tr>         <td valign="top" width="161">Required</td>          <td valign="top" width="639">Denotes if the value is required</td>       </tr>        <tr>         <td valign="top" width="161">Data Type</td>          <td valign="top" width="639">Re-only display of data type for the selected “Name” attribute.</td>       </tr>     </tbody></table> </blockquote>  <p>From the Select Action Menu, you view the list of installed Operational Management Products.</p>  <blockquote>   <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFLogicalManagementOperations_14092LMO-OMPscreen_2.gif"><img title="LMO-OMPscreen" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="73" alt="LMO-OMPscreen" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFLogicalManagementOperations_14092LMO-OMPscreen_thumb.gif" width="244" border="0" /></a> </p> </blockquote>  <p>You can also view a list of existing Integration Module.</p>  <blockquote>   <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFLogicalManagementOperations_14092LMO-IMscreen_2.gif"><img title="LMO-IMscreen" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="73" alt="LMO-IMscreen" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFLogicalManagementOperations_14092LMO-IMscreen_thumb.gif" width="244" border="0" /></a> </p> </blockquote>  <p>&#160;</p>  <p>For more information on LMOs and Integration Modules, see the Integration chapter in the <a href="http://publib.boulder.ibm.com/infocenter/tivihelp/v3r1/topic/com.ibm.tamit.doc_7.1/pdf/mam71_integration_guide.pdf" target="_blank">Maximo Integration Guide</a>.</p>  <p></p>  <p></p>  <p>&#160;</p>  <p>&#160;</p>  <div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:517a72b4-128e-48df-920b-08ea1c8b2bb6" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">Technorati Tags: <a href="http://technorati.com/tags/Maximo" rel="tag">Maximo</a>,<a href="http://technorati.com/tags/Maximo+Integration+Framework" rel="tag">Maximo Integration Framework</a>,<a href="http://technorati.com/tags/MIF" rel="tag">MIF</a></div>
			
      ]]></description>
            
      <dc:subject>Maximo, Maximo 7, Maximo: MIF</dc:subject>
      <dc:date>2010-05-30T19:34:15+00:00</dc:date>
    </item>

    <item>
      <title>MIF &amp;ndash; External Systems</title>
      
      <link>http://webprod.taic.net/blog/article/mif-external-systems/</link>
      <guid>http://webprod.taic.net/blog/article/mif-external-systems/#When:20:25:38Z</guid>
      
      <description><![CDATA[
			
			<p>An External System describes a collection of interfaces that are for one application that is outside Maximo. Inbound messages must include the External System name so that the MIF can determine if the message is from a valid system and is enabled. Let’s look at the main tab:</p>  <blockquote>   <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFExternalSystems_12C0FES-mainTab_2.gif"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="ES-mainTab" border="0" alt="ES-mainTab" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFExternalSystems_12C0FES-mainTab_thumb.gif" width="244" height="72" /></a> </p> </blockquote>  <p>&#160;</p>  <p>Fields:</p>  <blockquote>   <table border="1" cellspacing="0" cellpadding="2" width="800"><tbody>       <tr>         <td valign="top" width="191">           <p align="center"><strong>FIELD</strong></p>         </td>          <td valign="top" width="609">           <p align="center"><strong>DESCRIPTION</strong></p>         </td>       </tr>        <tr>         <td valign="top" width="191">System</td>          <td valign="top" width="609">This is a unique name for the external system. All inbound messages must have this value (case matters) and all outbound messages will include this value. This is a required value.</td>       </tr>        <tr>         <td valign="top" width="191">Description</td>          <td valign="top" width="609">This is a short description for the External System</td>       </tr>        <tr>         <td valign="top" width="191">End Point</td>          <td valign="top" width="609">This is the default endpoint for outbound interfaces (publish channels).</td>       </tr>        <tr>         <td valign="top" width="191">Enabled?</td>          <td valign="top" width="609">This flag denotes if the entire external system is enabled. </td>       </tr>        <tr>         <td valign="top" width="191">Outbound Sequential Queue</td>          <td valign="top" width="609">This is the name of the outbound sequential queue the external system will use.</td>       </tr>        <tr>         <td valign="top" width="191">Inbound Sequential Queue</td>          <td valign="top" width="609">This is the name of the inbound sequential queue the external system will use.</td>       </tr>        <tr>         <td valign="top" width="191">Inbound Continuous Queue</td>          <td valign="top" width="609">This is the name of the inbound continuous queue the external system will use.</td>       </tr>     </tbody></table> </blockquote>  <p>If your end point you selected has any parameters, they will be displayed below.</p>  <p>A note on queues. When you install Maximo and setup the MIF, you end up creating three queues and they will be what is displayed when you select the lookup icon. These queues are use internally by the MIF and required. These queues are different than the queue for a JMS Queue endpoint.</p>  <p>Once you enter base information of the External System, you then add Publish Channels and Enterprise Services.</p>  <p>Publish Channel Tab:</p>  <blockquote>   <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFExternalSystems_12C0FES-PubChannels_2.gif"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="ES-PubChannels" border="0" alt="ES-PubChannels" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFExternalSystems_12C0FES-PubChannels_thumb.gif" width="244" height="69" /></a> </p> </blockquote>  <p>Fields:</p>  <blockquote>   <table border="1" cellspacing="0" cellpadding="2" width="800"><tbody>       <tr>         <td valign="top" width="209">           <p align="center"><strong>FIELD</strong></p>         </td>          <td valign="top" width="591">           <p align="center"><strong>DESCRIPTION</strong></p>         </td>       </tr>        <tr>         <td valign="top" width="209">Publish Channel</td>          <td valign="top" width="591">This is the unique ID of the publish channel.</td>       </tr>        <tr>         <td valign="top" width="209">Description</td>          <td valign="top" width="591">This is a readonly field. The value is pulled from the Publish Channel</td>       </tr>        <tr>         <td valign="top" width="209">Adapter</td>          <td valign="top" width="591">This is a readonly field. The value is pulled from the Publish Channel</td>       </tr>        <tr>         <td valign="top" width="209">End Point</td>          <td valign="top" width="591">This is the end point for the publish channel. This field is optional. If blank, the End Point value for the External System is used. If entered, this will override the End Point for the current Publish Channel</td>       </tr>        <tr>         <td valign="top" width="209">Enabled?</td>          <td valign="top" width="591">This flag denotes if the current Publish Channel is enabled. This allows you to turn on/off each publish channel without affect the other publish channels.</td>       </tr>        <tr>         <td valign="top" width="209">User Defined?</td>          <td valign="top" width="591">This field is filled out by Maximo and denotes if the entry is created by the user.</td>       </tr>     </tbody></table> </blockquote>  <p>Instead of entering the publish channels one at a time you can use the “Select Channel” button to add multiple publish channels at a time.</p>  <blockquote>   <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFExternalSystems_12C0FES-SelectPubChannel_2.gif"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="ES-SelectPubChannel" border="0" alt="ES-SelectPubChannel" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFExternalSystems_12C0FES-SelectPubChannel_thumb.gif" width="148" height="244" /></a> </p> </blockquote>  <p>Check the publish channels you want to add and then click OK to add them to the external system.</p>  <p>You can also add Enterprise Services.</p>  <blockquote>   <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFExternalSystems_12C0FES-EntService_2.gif"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="ES-EntService" border="0" alt="ES-EntService" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFExternalSystems_12C0FES-EntService_thumb.gif" width="244" height="70" /></a> </p> </blockquote>  <p>Fields:</p>  <blockquote>   <table border="1" cellspacing="0" cellpadding="2" width="800"><tbody>       <tr>         <td valign="top" width="211">           <p align="center"><strong>FIELD</strong></p>         </td>          <td valign="top" width="589">           <p align="center"><strong>DESCRIPTION</strong></p>         </td>       </tr>        <tr>         <td valign="top" width="211">Enterprise Service</td>          <td valign="top" width="589">This is the unique ID of the Enterprise Service.</td>       </tr>        <tr>         <td valign="top" width="211">Description</td>          <td valign="top" width="589">This is a readonly field. This value is pulled from the Enterprise Service</td>       </tr>        <tr>         <td valign="top" width="211">Adapter</td>          <td valign="top" width="589">This is a readonly field. This value is pulled from the Enterprise Service</td>       </tr>        <tr>         <td valign="top" width="211">Operation</td>          <td valign="top" width="589">This is a readonly field. This value is pulled from the Enterprise Service</td>       </tr>        <tr>         <td valign="top" width="211">Enabled?</td>          <td valign="top" width="589">This flag denotes if the current Enterprise Service is enabled. This allows you to turn on/off each Enterprise Service without affect the other Enterprise Service.</td>       </tr>        <tr>         <td valign="top" width="211">Use Continuous Queue?</td>          <td valign="top" width="589">This flag denotes if inbound messages should use the continuous or sequential queue. </td>       </tr>        <tr>         <td valign="top" width="211">User Defined?</td>          <td valign="top" width="589">This field is filled out by Maximo and denotes if the entry is created by the user.</td>       </tr>     </tbody></table> </blockquote>  <p></p>  <p>Instead of entering the Enterprise Service one at a time you can use the “Select Service” button to add multiple Enterprise Service at a time.</p>  <blockquote>   <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFExternalSystems_12C0FES-SelectEntService_2.gif"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="ES-SelectEntService" border="0" alt="ES-SelectEntService" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFExternalSystems_12C0FES-SelectEntService_thumb.gif" width="147" height="244" /></a> </p> </blockquote>  <p>Check the Enterprise Service you want to add and then click OK to add them to the external system.</p>  <p></p>  <p>&#160;</p>  <p>The Select Action menu has a couple of options. The first is managing the JMS Queues.</p>  <blockquote>   <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFExternalSystems_12C0FES-AddQueues_2.gif"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="ES-AddQueues" border="0" alt="ES-AddQueues" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFExternalSystems_12C0FES-AddQueues_thumb.gif" width="244" height="126" /></a> </p> </blockquote>  <p>This screen is where you add queues to Maximo. Now, this does not create the queue on the Web Server but rather tells Maximo of any you have created.</p>  <p>Another option from is to create interface tables. </p>  <blockquote>   <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFExternalSystems_12C0FES-CreateIFaceTbls_2.gif"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="ES-CreateIFaceTbls" border="0" alt="ES-CreateIFaceTbls" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFExternalSystems_12C0FES-CreateIFaceTbls_thumb.gif" width="244" height="113" /></a> </p> </blockquote>  <p>The list of tables shown will depend on several things. First will be if any Publish Channels or Enterprise Services on the current External System had a table defined. Second, the MOS the Publish Channel or Enterprise Service is based on must support flat structure. Last, the MOS cannot be to complex (can have too many child MBOs). You use interface tables, you MUST first create them. To create them, check the box next to table you want to create, then click “create”. This will not only create your interface table, but it will also create the inbound and outbound transaction tables (their names are send in the endpoint). If the table already exist (you will see the check box “table Exists?” check) and you need to recreate it and it has data in it you want to keep, then you can check the “Rename Existing?” check box. Maximo will then rename the old table before creating the interface table. You will have to them move the data to the new table.</p>  <p>A note on Interface tables and their base MBOs. In Maximo 6, when you made any change to the base MBO, you would have to re-create the interface for those changes to show up in the interface table. However, in Maximo 7, any change to an existing field will be updated on the interface table during the Database Configuration. However, if you add a new field, it will NOT be added to the interface table and you will have to manually re-create the interface table. New fields are not an issue for inbound interfaces (unless you want the interface to provide a value for the new field) but for outbound, they will cause your interface to error out. </p>  <p>The last option is Setup Integration Controls. This allows you to modify the Integration Controls and to setup override values for each Org/Site.</p>  <blockquote>   <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFExternalSystems_12C0FES-IntControl_2.gif"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="ES-IntControl" border="0" alt="ES-IntControl" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFExternalSystems_12C0FES-IntControl_thumb.gif" width="244" height="93" /></a>&#160;</p> </blockquote>  <p>This screen will display any interface controls you have setup for Publish Channels/Enterprise Services that are part of the External System. To edit the Integration Control click on the edit icon to the left of the name.</p>  <blockquote>   <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFExternalSystems_12C0FES-EditIntControl_2.gif"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="ES-EditIntControl" border="0" alt="ES-EditIntControl" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFExternalSystems_12C0FES-EditIntControl_thumb.gif" width="244" height="175" /></a> </p> </blockquote>  <p>You can modify the values in the Integration control. To create an override, click on the “Override” button.</p>  <blockquote>   <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFExternalSystems_12C0FES-OverRideIntControl_2.gif"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="ES-OverRideIntControl" border="0" alt="ES-OverRideIntControl" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFExternalSystems_12C0FES-OverRideIntControl_thumb.gif" width="244" height="129" /></a> </p> </blockquote>  <p>Here you can enter the Org and Site the override is for. Then you can create integration control values for that Org/Site.</p>  <p>&#160;</p>  <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:48e19c18-5ca5-4347-9f21-eb9113ac1549" class="wlWriterEditableSmartContent">Technorati Tags: <a href="http://technorati.com/tags/Maximo" rel="tag">Maximo</a>,<a href="http://technorati.com/tags/Maximo+Integration+Framework" rel="tag">Maximo Integration Framework</a>,<a href="http://technorati.com/tags/External+System" rel="tag">External System</a></div>
			
      ]]></description>
            
      <dc:subject>Maximo, Maximo 7, Maximo: MIF</dc:subject>
      <dc:date>2010-04-28T20:25:38+00:00</dc:date>
    </item>

    <item>
      <title>MIF &amp;ndash; End Points</title>
      
      <link>http://webprod.taic.net/blog/article/mif-end-points/</link>
      <guid>http://webprod.taic.net/blog/article/mif-end-points/#When:18:13:32Z</guid>
      
      <description><![CDATA[
			
			<p>In defining where data is going to/coming from in an integration, you use a handler to describe what that “other end” of the integration looks like. An End Point is an instance of a Handler. By using an End Point to create an instance of a Handler, you can customize the Handler. For example, you can create two different instances of the FLATFILE handler to point at two different folders. Maximo comes with all the main handlers that you will need. To create your own handler, you will need to create your own handler class. That is beyond the scope of this blog entry.</p>  <blockquote>   <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFEndPoints_10E73EP-ListTab_2.gif"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="EP-ListTab" border="0" alt="EP-ListTab" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFEndPoints_10E73EP-ListTab_thumb.gif" width="244" height="79" /></a> </p> </blockquote>  <p>For each Handler that comes with Maximo, there will be at least on End Point for it. You would create a new instance of a Handler when you need the parameters for the Handler need to be different from another End Point.</p>  <blockquote>   <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFEndPoints_10E73EP-New_2.gif"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="EP-New" border="0" alt="EP-New" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFEndPoints_10E73EP-New_thumb.gif" width="244" height="54" /></a> </p> </blockquote>  <p>When you add a new End Point you need to fill in the following fields:</p>  <blockquote>   <table border="0" cellspacing="0" cellpadding="2" width="600"><tbody>       <tr>         <td valign="top" width="158">           <p align="center"><strong>Field</strong></p>         </td>          <td valign="top" width="442">           <p align="center"><strong>Description</strong></p>         </td>       </tr>        <tr>         <td valign="top" width="158">End Point</td>          <td valign="top" width="442">This is a unique name for the End Point</td>       </tr>        <tr>         <td valign="top" width="158">Description</td>          <td valign="top" width="442">A description of the End Point</td>       </tr>        <tr>         <td valign="top" width="158">Handler</td>          <td valign="top" width="442">Select the Handler will be based on. The value you pick here will populate the Parameter fields.</td>       </tr>        <tr>         <td valign="top" width="158">Property</td>          <td valign="top" width="442">This is a read only value of the name of the parameter</td>       </tr>        <tr>         <td valign="top" width="158">Value</td>          <td valign="top" width="442">This is the value for the parameter. If the Allow Override? is checked then this becomes the default value.</td>       </tr>        <tr>         <td valign="top" width="158">Encrypted Value</td>          <td valign="top" width="442">If the field is to be encrypted (determined by the Handler class), then this field will be enabled and the Value field will be disabled. The difference between this field and Value is that this field will be encrypted in the database.</td>       </tr>        <tr>         <td valign="top" width="158">Allow Override?</td>          <td valign="top" width="442">Check this box if the user is able to override this value when they use this end point on an External System.</td>       </tr>     </tbody></table> </blockquote>  <p>That is pretty much it for creating an End Point. The other thing you do from this screen is Add/Modify Handlers. You do this by Select Action->Add/Modify Handlers.</p>  <blockquote>   <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFEndPoints_10E73EP-Handlers_2.gif"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="EP-Handlers" border="0" alt="EP-Handlers" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFEndPoints_10E73EP-Handlers_thumb.gif" width="244" height="184" /></a> </p> </blockquote>  <p>This screen is for advanced users. There are very few reasons you would need to modify an existing Maximo Handler and as such you should leave them alone. To add your own:</p>  <blockquote>   <table border="0" cellspacing="0" cellpadding="2" width="600"><tbody>       <tr>         <td valign="top" width="170">           <p align="center"><strong>Field</strong></p>         </td>          <td valign="top" width="430">           <p align="center"><strong>Description</strong></p>         </td>       </tr>        <tr>         <td valign="top" width="170">Handler</td>          <td valign="top" width="430">This is a unique name for the handler</td>       </tr>        <tr>         <td valign="top" width="170">Consumed By</td>          <td valign="top" width="430">This denotes what will be using the Handler. Your current options are INTEGRATION and MIGRATIONMGR.</td>       </tr>        <tr>         <td valign="top" width="170">Handler Class Name</td>          <td valign="top" width="430">This is the full path and class name of the java class that does all the work for the Handler.</td>       </tr>     </tbody></table> </blockquote>  <p>That pretty much covers the End Points screen.</p>  <p>&#160;</p>  <p>&#160;</p>  <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:a975a8a9-6782-4339-bb67-bb8bddaf10e6" class="wlWriterEditableSmartContent">Technorati Tags: <a href="http://technorati.com/tags/Maximo" rel="tag">Maximo</a>,<a href="http://technorati.com/tags/MIF" rel="tag">MIF</a>,<a href="http://technorati.com/tags/End+Points" rel="tag">End Points</a></div>
			
      ]]></description>
            
      <dc:subject>Maximo, Maximo 7, Maximo: MIF</dc:subject>
      <dc:date>2010-04-18T18:13:32+00:00</dc:date>
    </item>

    <item>
      <title>Boise Code Camp Lessons Learned</title>
      
      <link>http://webprod.taic.net/blog/article/boise-code-camp-lessons-learned/</link>
      <guid>http://webprod.taic.net/blog/article/boise-code-camp-lessons-learned/#When:13:58:52Z</guid>
      
      <description><![CDATA[
			
			<p>This last weekend was the <a href="http://www.boisecodecamp.com/" target="_blank">Boise Code Camp</a> and I have to say that is was a great success. I would like to send a special thank you to the organizers, session instructors, sponsors who generously donated, and all those that volunteers to just help out. </p>  <blockquote>   <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterBoiseCodeCampLessonsLearned_D5750_1_2.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="0_1" border="0" alt="0_1" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterBoiseCodeCampLessonsLearned_D5750_1_thumb.jpg" width="244" height="184" /></a> </p> </blockquote>  <p>As one who lead a couple of sessions, I have a couple of lessons learned. I taught two session on mobile phone development using Java ME. </p>  <p><strong>Lesson 1:</strong> The first session I titled: <a href="http://www.taic-sams.net/index.php/blog/article/intro-to-java-me/" target="_blank">Intro to J2ME</a> and the second was given the long winded and acronym laden name of: <a href="http://www.taic-sams.net/index.php/blog/article/data-management-in-j2me-using-the-rms/" target="_blank">Data Management in J2ME using the RMS</a>. The number one question I got from people (even Java programmers) is ‘What is J2ME?’ or ‘What is Java ME?’ This really surprised me as I would have thought it was a little better known since it is used on so many different platforms. I also deduced that if no one knows what J2ME is, then it might explain why only 4 people turned out for the Intro to J2ME class. Clearly their is much in a title. As such, I have renamed the sessions for the <a href="http://www.portlandcodecamp.com/" target="_blank">Portland Code Camp</a> to <em>Introduction to Mobile App Development using JavaME</em> and <em>Data Management in JavaME</em>. This I think will help people understand what the class is about, even if they don’t know what JavaME is. People often just look at the title of a session and if it doesn’t peak their interest, they won’t bother to read the description. Your title matters, so make it count.</p>  <p><strong>Lesson 2:</strong> My Data Management in JavaME session needs to be longer. I went through the slides a lot faster than I thought I would. Time to expand on a few points I made and maybe even show example of creating and DAO for parent/child data. I talk about how, but I could just as easily create slides for it.</p>  <p><strong>Lesson 3:</strong> Swag. Although there was a great turnout of non-Microsoft centric sessions at the code camp. Almost all the swag that was provided to session leaders to give out during each session was heavily based in Microsoft tools. Please understand, I am not anti-Microsoft, it just didn’t seem right to hand out a book on C# to a session on JavaME. Next time I will buy a couple of piece of more appropriate swag to give out at my session.</p>  <p><strong>Lesson 4:</strong> A new code camp will be staring this September in Pullman, WA.</p>  <p><strong>Lesson 5:</strong> Being a platinum sponsor is a great way to recruit programmers. As a platinum sponsor (and maybe gold too, not sure), you were allowed to have a table at the event. Most of them were recruiting for positions. How much more targeted can you get than a bunch of self motivated programmers to recruit from. If you are a company looking for programmers, the donation is a small price (and it is pretty small price) to have access to a concentrated local IT geeks.</p>  <p><strong>Geek Joke learned:</strong> Eight bits walk into a bar and says ‘Make me a double.’ If you are not a geek, this joke will make no sense at all and if you are a geek, you probably just moaned as it is a bad joke.</p>  <p>The code camp was a great time and I encourage everyone to find a code camp near you and get involved.</p>  <p>&#160;</p>  <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:d19c9996-e1c0-4c69-a826-90714c414a57" class="wlWriterEditableSmartContent">Technorati Tags: <a href="http://technorati.com/tags/Code+Camp" rel="tag">Code Camp</a>,<a href="http://technorati.com/tags/Boise" rel="tag">Boise</a></div>
			
      ]]></description>
            
      <dc:subject>JavaME</dc:subject>
      <dc:date>2010-03-28T13:58:52+00:00</dc:date>
    </item>

    <item>
      <title>MIF &amp;ndash; Web Services Library</title>
      
      <link>http://webprod.taic.net/blog/article/mif-web-services-library/</link>
      <guid>http://webprod.taic.net/blog/article/mif-web-services-library/#When:11:12:21Z</guid>
      
      <description><![CDATA[
			
			<p>Web services are a powerful tool in the MIF arsenal. The MIF provides a way to dynamically create web services based on the MOS, Enterprise Service or Standard Service. Without writing a line of code, Maximo will create the web service, WSDL, and all required web service files. Being that Maximo is generating the code for the web services, there are some functional restrictions on what those web services can do. ‘Sync’ operations (add/update/delete) web services do NOT return a value. ‘Query’ interfaces do return a value but you cannot update values using them. </p>  <p>Web Service Library screen is a little different than most screens. From the List tab, you will notice that there is no “create new” icon. </p>  <blockquote>   <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFWebServicesLibrary_12301WS-addMenu.gif"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="WS-addMenu" border="0" alt="WS-addMenu" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFWebServicesLibrary_12301WS-addMenu_thumb.gif" width="240" height="68" /></a> </p> </blockquote>  <p>This is because you have three different sources to create a new web service form. As such, you have to use the Select Action menu to add a new web service. You can list all web services that have been created. Clicking on one will open the Web Service Library tab.</p>  <blockquote>   <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFWebServicesLibrary_12301WS-MainScreen_2.gif"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="WS-MainScreen" border="0" alt="WS-MainScreen" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFWebServicesLibrary_12301WS-MainScreen_thumb.gif" width="244" height="82" /></a> </p> </blockquote>  <p>This tab displays the details of the web service. You cannot edit anything on this screen. It also displays the list of WSDL Operations for the web service. From this screen you can Generate/view the XML. This will show the XML for both the inbound and response, if applicable. When you click on the button you will be ask to confirm this action.</p>  <blockquote>   <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFWebServicesLibrary_12301WS-ViewXML_2.gif"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="WS-ViewXML" border="0" alt="WS-ViewXML" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFWebServicesLibrary_12301WS-ViewXML_thumb.gif" width="244" height="136" /></a> </p> </blockquote>  <p>So now let’s talk about creating the web service. The first method is from a MOS. You would Select Action->Create WS from Object Structure.</p>  <blockquote>   <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFWebServicesLibrary_12301WS-AddFromMOS.gif"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="WS-AddFromMOS" border="0" alt="WS-AddFromMOS" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFWebServicesLibrary_12301WS-AddFromMOS_thumb.gif" width="240" height="223" /></a> </p> </blockquote>  <p>You can select more than one MOS and the system will create a Web Service for each. This provide direct access to the MOS but do not provide a way to manipulate the data via code.</p>  <p>The next web service is from an Enterprise Service. You would Select Action->Create WS from Enterprise Service.</p>  <blockquote>   <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFWebServicesLibrary_12301WS-AddFromES_2.gif"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="WS-AddFromES" border="0" alt="WS-AddFromES" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFWebServicesLibrary_12301WS-AddFromES_thumb.gif" width="244" height="202" /></a> </p> </blockquote>  <p>Again, you can select more than one to create multiple at a time. Basing a Web Service on an Enterprise Service gives you lots of ways to manipulate the message. You can use processing rules and User Exit classes.</p>  <p>The last Web service is based on a Standard Service. A standard service is a Maximo application. These are setup by IBM. To create one, you would Select Action->Create WS from Standard Service.</p>  <blockquote>   <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFWebServicesLibrary_12301WS-AddFromSS_2.gif"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="WS-AddFromSS" border="0" alt="WS-AddFromSS" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFWebServicesLibrary_12301WS-AddFromSS_thumb.gif" width="244" height="158" /></a> </p> </blockquote>  <p>Again, you can select more than one at a time.</p>  <p>Just because you have created a web service, that does not mean it is deployed (or running). From both tabs you can see a check box that indicates if the web service is deployed. To deploy a web service, have the web service you want to deploy on the Web Service Library tab and Select Action->Deploy Web Service.</p>  <blockquote>   <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFWebServicesLibrary_12301WS-Deploy_2.gif"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="WS-Deploy" border="0" alt="WS-Deploy" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFWebServicesLibrary_12301WS-Deploy_thumb.gif" width="244" height="99" /></a> </p> </blockquote>  <p>To undeploy (stop) a web service you would again have the web service you want to deploy on the Web Service Library tab and Select Action->Undeploy Web Service.</p>  <p>From the Select Action menu you can delete a web Service.</p>  <p>&#160;</p>  <p>It is possible to create a web service to update/create a record in Maximo and return a value(s). To do this you would create a standard ‘Query’ interface based on an Enterprise Service. Then you would create a UserExit class that would do your update/create.</p>  <p>A common question I get is ‘How can I create one web service that I can query for multiple different MBOs (like Asset, Location, Workorder). My first comment is each of the MBOs in Maximo have very different data fields, which means that a response form each is going to look different (eg. in a different format). Asset does not have the same fields as a Workorder so by trying to combine them into one Web Service is adding a lot of complexity into your code. As a ‘data purist’, I would strongly recommend having a web service for each MBO. However, if you really want to, you can but it takes a lot of work. The first step is you have to come up with one XML schema that includes all the fields from all the MBOs you want. Next you need to create an MBO in Maximo (a non-persistent one will be just fine) that has all those fields. Then you can create a MOS based on your new MBO. Then create an Enterprise service for the MOS. You will need to create an User Exit class for the outbound message. This will do all the logic you populate the outbound message with the data the query is asking for. new MBO with the data the user is asking for. </p>  <p></p>  <p></p>  <p></p>  <p></p>  <p>&#160;</p>  <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:b94f1f67-4040-4848-937d-b8a2c8670190" class="wlWriterEditableSmartContent">Technorati Tags: <a href="http://technorati.com/tags/Maximo" rel="tag">Maximo</a>,<a href="http://technorati.com/tags/MIF" rel="tag">MIF</a>,<a href="http://technorati.com/tags/Web+Service" rel="tag">Web Service</a></div>
			
      ]]></description>
            
      <dc:subject>Maximo, Maximo 7, Maximo: MIF</dc:subject>
      <dc:date>2010-03-28T11:12:21+00:00</dc:date>
    </item>

    <item>
      <title>Data Management in J2ME using the RMS</title>
      
      <link>http://webprod.taic.net/blog/article/data-management-in-j2me-using-the-rms/</link>
      <guid>http://webprod.taic.net/blog/article/data-management-in-j2me-using-the-rms/#When:09:04:09Z</guid>
      
      <description><![CDATA[
			
			<p>This is a presentation I did for the <a href="http://www.boisecodecamp.com" target="_blank">Boise Code Camp and Tech Fest</a>. It talks about how to do data managements using the Record Management System provided in J2ME. It also covers use Data Access Object approach to handling your data management.</p>  <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:fb3a1972-4489-4e52-abe7-25a00bb07fdf:11bfd1af-737d-4adb-a272-5382c140a2ed" class="wlWriterEditableSmartContent"><p> <a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterDataManagementinJ2MEusingtheRMS_9112Data_Management_in_J2ME_using_the_RMS.zip" target="_blank">Data Management in J2ME using the RMS.zip</a></p></div>  <p>&#160;</p>  <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:dba1d75b-8875-455c-8ad8-314eb2e40cda" class="wlWriterEditableSmartContent">Technorati Tags: <a href="http://technorati.com/tags/JavaME" rel="tag">JavaME</a>,<a href="http://technorati.com/tags/J2ME" rel="tag">J2ME</a>,<a href="http://technorati.com/tags/Record+Management+System" rel="tag">Record Management System</a>,<a href="http://technorati.com/tags/DAO" rel="tag">DAO</a>,<a href="http://technorati.com/tags/RecordStore" rel="tag">RecordStore</a></div>
			
      ]]></description>
            
      <dc:subject>C#, Programming Techniques, JavaME, Programming Techniques</dc:subject>
      <dc:date>2010-03-23T09:04:09+00:00</dc:date>
    </item>

    <item>
      <title>Intro to Java ME</title>
      
      <link>http://webprod.taic.net/blog/article/intro-to-java-me/</link>
      <guid>http://webprod.taic.net/blog/article/intro-to-java-me/#When:19:45:53Z</guid>
      
      <description><![CDATA[
			
			<p>This is a presentation on an Intro to JavaME development I created for the 2010 <a href="http://www.boisecodecamp.com" target="_blank">Boise Code Camp</a>. It covers basic intro to the 3 pieces of JavaME (CDC, CLDC and JavaFX) and a sample app. </p>  <blockquote>   <p>     <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:fb3a1972-4489-4e52-abe7-25a00bb07fdf:c9d2fc2a-fdac-4845-8e9f-50a36c060c8d" class="wlWriterEditableSmartContent"><p> <a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterIntrotoJavaME_11ACAJaveME-Intro.zip" target="_blank">JavaME-Intro.zip</a></p></div>   </p> </blockquote>  <p>&#160;</p>  <p>   <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:b62e505f-a3d8-458a-aa6e-7985ce4cc264" class="wlWriterEditableSmartContent">Technorati Tags: <a href="http://technorati.com/tags/JavaME" rel="tag">JavaME</a></div></p>
			
      ]]></description>
            
      <dc:subject>JavaME</dc:subject>
      <dc:date>2010-03-12T19:45:53+00:00</dc:date>
    </item>

    <item>
      <title>Podcast Episode 1: What is an Interface?</title>
      
      <link>http://webprod.taic.net/blog/article/podcast-episode-1-what-is-an-interface/</link>
      <guid>http://webprod.taic.net/blog/article/podcast-episode-1-what-is-an-interface/#When:18:52:33Z</guid>
      
      <description><![CDATA[
			
			<p>The first episode of the MaxCast podcast is now available. You can download the MP3 here: <a href="http://planetchrisman.com/maxcast/WhatIsAnInterface.mp3">WhatIsAnInterface.mp3</a> or subscribe to the RSS feed here: <a href="http://feeds.feedburner.com/MaximoPodcast">http://feeds.feedburner.com/MaximoPodcast</a>.</p>  <p>&#160;</p>  <p>This week I talk about what is an interface and what you need to know to create one.</p>
			
      ]]></description>
            
      <dc:subject>Maximo, Maximo: MIF</dc:subject>
      <dc:date>2010-03-12T18:52:33+00:00</dc:date>
    </item>

    <item>
      <title>MIF&#45; Invocation Channel</title>
      
      <link>http://webprod.taic.net/blog/article/mif-invocation-channel/</link>
      <guid>http://webprod.taic.net/blog/article/mif-invocation-channel/#When:18:51:38Z</guid>
      
      <description><![CDATA[
			
			<p>An Invocation Channel is a way for Maximo to call an external SOA (ie, WebService) method. It provides ways to manipulate the outbound message as well as the response. That’s right, you can now have Maximo call an external web services or applications via a SOA definition.</p>  <p>Invocation Channels are outbound data only.</p>  <blockquote>   <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFInvocationChannel_12073IC-MainScreen_2.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="IC-MainScreen" border="0" alt="IC-MainScreen" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFInvocationChannel_12073IC-MainScreen_thumb.jpg" width="244" height="69" /></a> </p> </blockquote>  <p>Fields</p>  <blockquote>   <table border="1" cellspacing="0" cellpadding="2" width="600"><tbody>       <tr>         <td valign="top" width="235">FIELD</td>          <td valign="top" width="365">DESCRIPTION</td>       </tr>        <tr>         <td valign="top" width="235">Invocation Channel</td>          <td valign="top" width="365">This is a unique name for this record.</td>       </tr>        <tr>         <td valign="top" width="235">Description</td>          <td valign="top" width="365">This is a long description for the Invocation channel.</td>       </tr>        <tr>         <td valign="top" width="235">Operation</td>          <td valign="top" width="365">This is filled in by Maximo and will be “Invoke”</td>       </tr>        <tr>         <td valign="top" width="235">Adapter</td>          <td valign="top" width="365">This is the adapter this invocation channel should use. The default is “Maximo”</td>       </tr>        <tr>         <td valign="top" width="235">Endpoint</td>          <td valign="top" width="365">This is the endpoint of the data. The Endpoint is where you define the how to call the SOA application or web service.</td>       </tr>        <tr>         <td valign="top" width="235">User Defined</td>          <td valign="top" width="365">For any invocation channel you create this will be check. It is populated by Maximo.</td>       </tr>        <tr>         <td valign="top" width="235">Process Response?</td>          <td valign="top" width="365">If checked, then Maximo will process any data coming back from the SOA endpoint. It will also enable the Service Response fields. If the box is unchecked, then Maximo will ignore any response from the SOA endpoint.</td>       </tr>        <tr>         <td valign="top" width="235">Request Object Structure</td>          <td valign="top" width="365">This is the MOS (MIF Object Structure) that Invocation Channel is based on. Changed to this MOS will trigger the Invocation Channel.</td>       </tr>        <tr>         <td valign="top" width="235">Request Processing Class</td>          <td valign="top" width="365">This is the full java path to a processing class. You can use this class to do additional processing of the data before it is sent to the Endpoint. This is optional.</td>       </tr>        <tr>         <td valign="top" width="235">Request User Exit</td>          <td valign="top" width="365">This is the full java path to a User Exit class. You an use this class to do additional processing of the data before it is sent to the Endpoint. This is optional</td>       </tr>        <tr>         <td valign="top" width="235">Request XSL File</td>          <td valign="top" width="365">This is the of an XSL style sheet. You can use this the change the Maximo XML message structure to one the Endpoint likes. This is optional.</td>       </tr>        <tr>         <td valign="top" width="235">Response Object Structure</td>          <td valign="top" width="365">This is the MOS (MIF Object Structure) that the response is based on/will update. This is optional. If blank, then the Request Object Structure will be updated.</td>       </tr>        <tr>         <td valign="top" width="235">Response Processing Class</td>          <td valign="top" width="365">This is the full java path to a processing class. You can use this class to do processing of the data before it updates the MOS. This is optional.</td>       </tr>        <tr>         <td valign="top" width="235">Response User Exit</td>          <td valign="top" width="365">This is the full java path to a User Exit class. You an use this class to do additional processing of the data before it is sent to the Endpoint. This is optional</td>       </tr>        <tr>         <td valign="top" width="235">Response XSL File</td>          <td valign="top" width="365">This is the of an XSL style sheet. You can use this the change the inbound message XML message structure to one that Maximo likes. This is optional.</td>       </tr>     </tbody></table> </blockquote>  <p>This defines the Invocation Channel in Maximo. </p>  <p>From the Select Action menu, you can General Schema/View XML</p>  <blockquote>   <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFInvocationChannel_12073IC-ViewXML_2.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="IC-ViewXML" border="0" alt="IC-ViewXML" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFInvocationChannel_12073IC-ViewXML_thumb.jpg" width="244" height="133" /></a> </p> </blockquote>  <p>The left side shows the outbound XML and the right is the response XML.</p>  <p>Obviously a key part to this is the Endpoint, which is where you define how to call the SOA application or web service. I will cover these in an other post.</p>  <p>&#160;</p>  <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:809a3f60-10b8-4b1c-85a7-d67b2bad80f8" class="wlWriterEditableSmartContent">Technorati Tags: <a href="http://technorati.com/tags/Maximo" rel="tag">Maximo</a>,<a href="http://technorati.com/tags/MIF" rel="tag">MIF</a>,<a href="http://technorati.com/tags/Invocation+Channel" rel="tag">Invocation Channel</a></div>
			
      ]]></description>
            
      <dc:subject>Maximo, Maximo 7, Maximo: MIF</dc:subject>
      <dc:date>2010-03-12T18:51:38+00:00</dc:date>
    </item>

    <item>
      <title>MIF&#45; Enterprise Services</title>
      
      <link>http://webprod.taic.net/blog/article/mif-enterprise-services/</link>
      <guid>http://webprod.taic.net/blog/article/mif-enterprise-services/#When:18:50:21Z</guid>
      
      <description><![CDATA[
			
			<p>Enterprise Services are for inbound integration.</p>  <blockquote>   <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFEnterpriseServices_BFD6ES-MainScreen_2.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="ES-MainScreen" border="0" alt="ES-MainScreen" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFEnterpriseServices_BFD6ES-MainScreen_thumb.jpg" width="244" height="119" /></a> </p> </blockquote>  <p>Fields</p>  <blockquote>   <table border="1" cellspacing="0" cellpadding="2" width="600"><tbody>       <tr>         <td valign="top" width="161"><strong>FIELD</strong></td>          <td valign="top" width="439"><strong>DESCRIPTION</strong></td>       </tr>        <tr>         <td valign="top" width="161">Enterprise Service</td>          <td valign="top" width="439">This is a unique name for the enterprise service.</td>       </tr>        <tr>         <td valign="top" width="161">Description</td>          <td valign="top" width="439">This is a long description for the enterprise service.</td>       </tr>        <tr>         <td valign="top" width="161">Operation</td>          <td valign="top" width="439">This determines how this Enterprise Service will act. The Default is “Sync”. Other options are CREATE, DELETE, QUERY, SYNC and UPDATE. SYNC includes CREATE, DELETE and UPDATE functionality. If you select “QUERY”, then the Response fields will be enabled. </td>       </tr>        <tr>         <td valign="top" width="161">Object Structure</td>          <td valign="top" width="439">This is the name of the MOS the Enterprise service is based on.</td>       </tr>        <tr>         <td valign="top" width="161">Adapter</td>          <td valign="top" width="439">This is the name of the adapter the Enterprise Service will use. Unless you built your own adapter, this will be MAXIMO.</td>       </tr>        <tr>         <td valign="top" width="161">Multiplication Control</td>          <td valign="top" width="439">This is the name of a crossreference Integration Control the Enterprise service will use.</td>       </tr>        <tr>         <td valign="top" width="161">Interface Table</td>          <td valign="top" width="439">This is the name of the Integration Table. IF you are going to use integration tables, then this field is required.</td>       </tr>        <tr>         <td valign="top" width="161">Split Tag</td>          <td valign="top" width="439">This is the fully qualified XPATH to an XML node that you want to apply the split process to.</td>       </tr>        <tr>         <td valign="top" width="161">User Defined</td>          <td valign="top" width="439">Internal field. If you created the Enterprise Service, then this will be checked</td>       </tr>        <tr>         <td valign="top" width="161">Use External Schema?</td>          <td valign="top" width="439">Use this check box to denote that you will be using an external Schema. Checking this box will enable the Split Tag, External Schema Location and External Schema Element fields. </td>       </tr>        <tr>         <td valign="top" width="161">Inbound Processing Class</td>          <td valign="top" width="439">This is the java path to the processing class for the inbound message.</td>       </tr>        <tr>         <td valign="top" width="161">Inbound User Exit Class</td>          <td valign="top" width="439">This is the java path to the User Exit class for the inbound message.</td>       </tr>        <tr>         <td valign="top" width="161">Inbound XSL Map</td>          <td valign="top" width="439">This is the name of the XSLT to use to transform the inbound message.</td>       </tr>        <tr>         <td valign="top" width="161">Inbound External Schema File</td>          <td valign="top" width="439">This is the full path to the External Schema File.</td>       </tr>        <tr>         <td valign="top" width="161">Inbound External Schema Element</td>          <td valign="top" width="439">This is the element in the external schema that Maximo should use as the root element.</td>       </tr>        <tr>         <td valign="top" width="161">Response Processing Class</td>          <td valign="top" width="439">This is the java path to the processing class for the outbound message.</td>       </tr>        <tr>         <td valign="top" width="161">Response User Exit Class</td>          <td valign="top" width="439">This is the java path to the User Exit class for the outbound message.</td>       </tr>        <tr>         <td valign="top" width="161">Response XSL Map</td>          <td valign="top" width="439">This is the name of the XSLT to use to transform the outbound message.</td>       </tr>        <tr>         <td valign="top" width="161">Response External Schema File</td>          <td valign="top" width="439">This is the full path to the External Schema File.</td>       </tr>        <tr>         <td valign="top" width="161">Response External Schema Element</td>          <td valign="top" width="439">This is the element in the external schema that Maximo should use as the root element.</td>       </tr>     </tbody></table> </blockquote>  <p>The next section is the Object Structure Sub-Records. It list the MBOs that are part of the Object Structure you selected.</p>  <p>The bottom section is for processing rules. Each MBO can have it own set of processing rules. As it turns out, the processing rules have not changed from Maximo 6. As such I refer to those blog posts:</p>  <blockquote>   <p><a title="http://webprod.taic.net/index.php/blog/article/mea-integration-interface-processing-rules-part-1/" href="http://webprod.taic.net/index.php/blog/article/mea-integration-interface-processing-rules-part-1/">MEA Integration Interface Processing Rules Part 1</a>       <br /><a title="http://webprod.taic.net/index.php/blog/article/mea-integration-interface-processing-rules-part-2/" href="http://webprod.taic.net/index.php/blog/article/mea-integration-interface-processing-rules-part-2/">MEA Integration Interface Processing Rules Part 2</a>       <br /><a title="http://webprod.taic.net/index.php/blog/article/mea-integration-interface-processing-rules-examples/" href="http://webprod.taic.net/index.php/blog/article/mea-integration-interface-processing-rules-examples/">MEA Integration Interface Processing Rules Examples</a></p> </blockquote>  <p>Now let’s look at the Select Action Menu.</p>  <blockquote>   <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFEnterpriseServices_BFD6ES-Menu_2.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="ES-Menu" border="0" alt="ES-Menu" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFEnterpriseServices_BFD6ES-Menu_thumb.jpg" width="240" height="208" /></a> </p> </blockquote>  <p>Add/Modify Additional Object Structure allows you to add other MOS’s to the Enterprise Service. I am not exactly sure the purpose of this but I suspect it is how you create a “merged object” in Maximo 7 (there was a check box in Maximo 6 for creating an interface based on non-related data. Additional MOS do not show up when you view the XML.</p>  <blockquote>   <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFEnterpriseServices_BFD6ES-AdditionalMOS_2.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="ES-AdditionalMOS" border="0" alt="ES-AdditionalMOS" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFEnterpriseServices_BFD6ES-AdditionalMOS_thumb.jpg" width="244" height="124" /></a> </p> </blockquote>  <p>Fields:</p>  <blockquote>   <table border="1" cellspacing="0" cellpadding="2" width="600"><tbody>       <tr>         <td valign="top" width="129"><strong>FIELD</strong></td>          <td valign="top" width="471"><strong>DESCRIPTION</strong></td>       </tr>        <tr>         <td valign="top" width="129">Object Structure</td>          <td valign="top" width="471">This is the name of the MOS.</td>       </tr>        <tr>         <td valign="top" width="129">Processing Class</td>          <td valign="top" width="471">This is the full java path to the processing class for this MOS.</td>       </tr>        <tr>         <td valign="top" width="129">User Exit Class</td>          <td valign="top" width="471">This is the full java path to the user exit class for this MOS.</td>       </tr>        <tr>         <td valign="top" width="129">Processing Order</td>          <td valign="top" width="471">This is the order in which the additional MOS will be processed. Additional MOS will always be processed after the primary MOS for the Enterprise Service.</td>       </tr>        <tr>         <td valign="top" width="129">XSL Map </td>          <td valign="top" width="471">This is the name of the XSLT to use to transform the data.</td>       </tr>        <tr>         <td valign="top" width="129">Multiplication Control</td>          <td valign="top" width="471">This is the name of a crossreference Integration Control the Enterprise service will use for this MOS.</td>       </tr>     </tbody></table> </blockquote>  <p></p>  <p>Next option is Gateway Properties. Gateway properties allows you to define additional tags that are in the header of the message. This allows you to grab the information and use it in the Interface.</p>  <blockquote>   <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFEnterpriseServices_BFD6ES-GatewayProperties_2.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="ES-GatewayProperties" border="0" alt="ES-GatewayProperties" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFEnterpriseServices_BFD6ES-GatewayProperties_thumb.jpg" width="244" height="122" /></a> </p> </blockquote>  <p>Fields:</p>  <blockquote>   <table border="1" cellspacing="0" cellpadding="2" width="600"><tbody>       <tr>         <td valign="top" width="169"><strong>FIELDS</strong></td>          <td valign="top" width="431"><strong>DESCRIPTION</strong></td>       </tr>        <tr>         <td valign="top" width="169">Interpreter Class</td>          <td valign="top" width="431">This is the full path to the java interpreter class.</td>       </tr>        <tr>         <td valign="top" width="169">Property</td>          <td valign="top" width="431">This is the name of the property</td>       </tr>        <tr>         <td valign="top" width="169">XML Tag</td>          <td valign="top" width="431">This check box denotes if the entry is an XML tag.</td>       </tr>        <tr>         <td valign="top" width="169">Value</td>          <td valign="top" width="431">This the value of the property.</td>       </tr>     </tbody></table> </blockquote>  <p>The Property, XML Tag and Value work in conjunction with each other. This is from the on-line help in Maximo:</p>  <ul>   <li>     <p>If you select the <b>XML Tag?</b> check box and leave the <b>Value</b> field null, the gateway uses the name of the root element in the XML message as the value for the corresponding property.</p>   </li>    <li>     <p>if you select the <b>XML Tag?</b> check box and enter a tag name in the <b>Value</b> field, the gateway uses the value for that tag as the value for the corresponding property. If the tag appears multiple times in the XML message, the adapter uses the value of the first occurrence of the tag.</p>   </li>    <li>     <p>If you clear the <b>XML Tag?</b> check box and enter a data value in the <b>Value</b> field, the gateway uses that data as the value for the corresponding property.</p>   </li> </ul>  <p>The next two options on the Select Action menu deal with Integration control. Please see my other posts on these.</p>  <p>The next option is the Message Tracking. This allows you to track messages track processing actions on the application server. You an then go search these messages to help you debug your publish channel.</p>  <blockquote>   <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFEnterpriseServices_BFD6ES-MessageTracking_2.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="ES-MessageTracking" border="0" alt="ES-MessageTracking" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFEnterpriseServices_BFD6ES-MessageTracking_thumb.jpg" width="244" height="95" /></a> </p> </blockquote>  <p>Fields:</p>  <blockquote>   <table border="1" cellspacing="0" cellpadding="2" width="600"><tbody>       <tr>         <td valign="top" width="115"><strong>FIELD</strong></td>          <td valign="top" width="485"><strong>DESCRIPTION</strong></td>       </tr>        <tr>         <td valign="top" width="115">Enable Message Tracking?</td>          <td valign="top" width="485">This check box turns on/off the message tracking.</td>       </tr>        <tr>         <td valign="top" width="115">Store Messages?</td>          <td valign="top" width="485">This check box turns on/off the storing of those messages. If you turn off the storing of messages, then message will just be written to the log.</td>       </tr>        <tr>         <td valign="top" width="115">External Message ID</td>          <td valign="top" width="485">This is a unique, full XPATH node value that is used to identify the message.</td>       </tr>        <tr>         <td valign="top" width="115">Search ID</td>          <td valign="top" width="485">This is a unique, full XPATH node value that is used by the message tracking search function</td>       </tr>     </tbody></table> </blockquote>  <p></p>  <p></p>  <p></p>  <p>The next option is Generate Schema/View XML. This option will generate the XML Schema for the publish channel and then display the frame of the XML message. When you select this option you will receive a message that states it will generate the Schema for all publish channels. Once you select OK, you will see the XML message:</p>  <blockquote>   <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFEnterpriseServices_BFD6ES-ViewXML_2.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="ES-ViewXML" border="0" alt="ES-ViewXML" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFEnterpriseServices_BFD6ES-ViewXML_thumb.jpg" width="244" height="133" /></a> </p> </blockquote>  <p></p>  <p></p>  <p>&#160;</p>  <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:fd1bd2ad-6b08-435e-bc64-8efb762015b5" class="wlWriterEditableSmartContent">Technorati Tags: <a href="http://technorati.com/tags/Maximo+7" rel="tag">Maximo 7</a>,<a href="http://technorati.com/tags/MIF" rel="tag">MIF</a>,<a href="http://technorati.com/tags/Enterprise+Services" rel="tag">Enterprise Services</a></div>
			
      ]]></description>
            
      <dc:subject>Maximo, Maximo 7, Maximo: MIF</dc:subject>
      <dc:date>2010-03-12T18:50:21+00:00</dc:date>
    </item>

    <item>
      <title>MIF&#45; Publish Channels</title>
      
      <link>http://webprod.taic.net/blog/article/mif-publish-channels/</link>
      <guid>http://webprod.taic.net/blog/article/mif-publish-channels/#When:18:49:12Z</guid>
      
      <description><![CDATA[
			
			<p>A Publish Channel is an outbound integration interface. A publish channel is bound to one MOS (MIF Object Structure). It allows for special processing for outbound messages.</p>  <blockquote>   <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFPublishChannels_10C4APC-Main_Screen_2.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="PC-Main Screen" border="0" alt="PC-Main Screen" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFPublishChannels_10C4APC-Main_Screen_thumb.jpg" width="244" height="98" /></a> </p> </blockquote>  <p>Let’s look at the fields:</p>  <blockquote>   <table border="1" cellspacing="0" cellpadding="2" width="600"><tbody>       <tr>         <td valign="top" width="111"><strong>FIELD</strong></td>          <td valign="top" width="489"><strong>DESCRIPTION</strong></td>       </tr>        <tr>         <td valign="top" width="111">Publish Channel</td>          <td valign="top" width="489">This is a unique name for the publish channel. This name will be part of the message that Maximo generates.</td>       </tr>        <tr>         <td valign="top" width="111">Description</td>          <td valign="top" width="489">This is a description of the publish channel</td>       </tr>        <tr>         <td valign="top" width="111">Operation</td>          <td valign="top" width="489">This is filled in by Maximo and will be ‘Publish’</td>       </tr>        <tr>         <td valign="top" width="111">Processing Class</td>          <td valign="top" width="489">This is the name of a Java class. This class allows for processing of the outbound message. You can use this class to manipulate the message structure.</td>       </tr>        <tr>         <td valign="top" width="111">Event Filter Class</td>          <td valign="top" width="489">This is the name of a Java class. This class allows you to custom define what the events that will trigger the interface</td>       </tr>        <tr>         <td valign="top" width="111">Adapter</td>          <td valign="top" width="489">This is the name of the adapter then publish channel is part of. The Adapter defines what the base message will look like (XML). Unless you define your own adapter, this will be ‘MAXIMO’.</td>       </tr>        <tr>         <td valign="top" width="111">Interface Table</td>          <td valign="top" width="489">If you are planning on using Interface tables, then you define the name of the table here. </td>       </tr>        <tr>         <td valign="top" width="111">XSL Map</td>          <td valign="top" width="489">This is the name of the XSL map that you can use to transform the output message. This is applied to the final (XML) message that Maximo generates. With XSL, you can transform the XML message to just about any format.</td>       </tr>        <tr>         <td valign="top" width="111">User Exit Class</td>          <td valign="top" width="489">This is the name of the Java Class. This class allows for custom processing message. This is typically used to change the data in the message.</td>       </tr>        <tr>         <td valign="top" width="111">User Defined?</td>          <td valign="top" width="489">This is auto-filled by Maximo. If the interface was created by Maximo, this field will NOT be checked. Any Publish Channel you create (or duplicate), then this will be checked.</td>       </tr>        <tr>         <td valign="top" width="111">Retain Mbo’s?</td>          <td valign="top" width="489">This check box tell the MIF if you want to save the MBO after the XML was created. This allows you to do additional processing to the MOS once the message is generated.</td>       </tr>        <tr>         <td valign="top" width="111">Enable Listener?</td>          <td valign="top" width="489">This field indicates if the Listener is enabled for the Publish Channel. You must enable the listener in order to make the MIF send data.</td>       </tr>     </tbody></table> </blockquote>  <p>The next section is the Object Structure Sub-Records. It list the MBOs that are part of the Object Structure you selected.</p>  <p>The bottom section is for processing rules. Each MBO can have it own set of processing rules. As it turns out, the processing rules have not changed from Maximo 6. As such I refer to those blog posts:</p>  <blockquote>   <p><a title="http://webprod.taic.net/index.php/blog/article/mea-integration-interface-processing-rules-part-1/" href="http://webprod.taic.net/index.php/blog/article/mea-integration-interface-processing-rules-part-1/">MEA Integration Interface Processing Rules Part 1</a>       <br /><a title="http://webprod.taic.net/index.php/blog/article/mea-integration-interface-processing-rules-part-2/" href="http://webprod.taic.net/index.php/blog/article/mea-integration-interface-processing-rules-part-2/">MEA Integration Interface Processing Rules Part 2</a>       <br /><a title="http://webprod.taic.net/index.php/blog/article/mea-integration-interface-processing-rules-examples/" href="http://webprod.taic.net/index.php/blog/article/mea-integration-interface-processing-rules-examples/">MEA Integration Interface Processing Rules Examples</a></p> </blockquote>  <p>Now let’s look at the Select Action Menu.</p>  <blockquote>   <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFPublishChannels_10C4APC-SelectActionMenu_2.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="PC-SelectActionMenu" border="0" alt="PC-SelectActionMenu" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFPublishChannels_10C4APC-SelectActionMenu_thumb.jpg" width="194" height="205" /></a> </p> </blockquote>  <p>The first option is the Enable Event Listener. This basically turns on the publish channel so that records will be processed by it. Once you select this option you will receive this message:</p>  <blockquote>   <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFPublishChannels_10C4APC-EventEnabled_2.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="PC-EventEnabled" border="0" alt="PC-EventEnabled" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFPublishChannels_10C4APC-EventEnabled_thumb.jpg" width="244" height="98" /></a>&#160;</p> </blockquote>  <p>Maximo will also check the “Event Enabled?” check box. The next option the Disable Event Listener. This turns off the publish channel. Once you select this option, you will receive this message:</p>  <blockquote>   <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFPublishChannels_10C4APC-EventDisabled_2.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="PC-EventDisabled" border="0" alt="PC-EventDisabled" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFPublishChannels_10C4APC-EventDisabled_thumb.jpg" width="244" height="97" /></a> </p> </blockquote>  <p>Maximo will also un-check the “Event Enabled?” check box. The next two options are for Integration Controls. I cover these in another post. This functionality is shared with other interfaces types (like Enterprise Services).</p>  <p>The next option is the Message Tracking. This allows you to track messages track processing actions on the application server. You an then go search these messages to help you debug your publish channel.</p>  <blockquote>   <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFPublishChannels_10C4APC-MessageTracking_2.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="PC-MessageTracking" border="0" alt="PC-MessageTracking" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFPublishChannels_10C4APC-MessageTracking_thumb.jpg" width="244" height="97" /></a> </p> </blockquote>  <p>Fields:</p>  <blockquote>   <table border="1" cellspacing="0" cellpadding="2" width="600"><tbody>       <tr>         <td valign="top" width="115"><strong>FIELD</strong></td>          <td valign="top" width="485"><strong>DESCRIPTION</strong></td>       </tr>        <tr>         <td valign="top" width="115">Enable Message Tracking?</td>          <td valign="top" width="485">This check box turns on/off the message tracking.</td>       </tr>        <tr>         <td valign="top" width="115">Store Messages?</td>          <td valign="top" width="485">This check box turns on/off the storing of those messages. If you turn off the storing of messages, then message will just be written to the log.</td>       </tr>        <tr>         <td valign="top" width="115">External Message ID</td>          <td valign="top" width="485">This is a unique, full XPATH node value that is used to identify the message.</td>       </tr>        <tr>         <td valign="top" width="115">Search ID</td>          <td valign="top" width="485">This is a unique, full XPATH node value that is used by the message tracking search function</td>       </tr>     </tbody></table> </blockquote>  <p></p>  <p></p>  <p></p>  <p>The next option is Generate Schema/View XML. This option will generate the XML Schema for the publish channel and then display the frame of the XML message. When you select this option you will receive a message that states it will generate the Schema for all publish channels. Once you select OK, you will see the XML message:</p>  <blockquote>   <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFPublishChannels_10C4APC-ViewXML_2.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="PC-ViewXML" border="0" alt="PC-ViewXML" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFPublishChannels_10C4APC-ViewXML_thumb.jpg" width="244" height="154" /></a> </p> </blockquote>  <p>The next two options pertain to Integration controls (Create Integration Controls and Associate Integration Controls). Integration Controls are very powerful and I will cover these in another blog post.</p>  <p>&#160;</p>  <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:281448e2-9676-41a1-928c-bf90d5a4c8ff" class="wlWriterEditableSmartContent">Technorati Tags: <a href="http://technorati.com/tags/MIF" rel="tag">MIF</a>,<a href="http://technorati.com/tags/Maximo+7" rel="tag">Maximo 7</a>,<a href="http://technorati.com/tags/Publish+Channels" rel="tag">Publish Channels</a></div>
			
      ]]></description>
            
      <dc:subject>Maximo, Maximo 7, Maximo: MIF</dc:subject>
      <dc:date>2010-03-12T18:49:12+00:00</dc:date>
    </item>

    <item>
      <title>MIF&#45; Integration Controls</title>
      
      <link>http://webprod.taic.net/blog/article/mif-integration-controls/</link>
      <guid>http://webprod.taic.net/blog/article/mif-integration-controls/#When:18:47:51Z</guid>
      
      <description><![CDATA[
			
			<p>Integration controls are a powerful way to either add a semi-hard coded value, a lookup validation list, or a cross reference lookup list to your MIF integrations. Integration Controls are valid for both Publish Channels and Enterprise Services.&#160; They are used in Processing Rules.&#160; One place where a semi-hard coded value would be of use is if you have multiple instances of Maximo and each system needs a way to identify itself. You could create an Integration control for each instances of Maximo. Then it you can just edit the integration control on each (via the front end) instead of having to create a custom class for each or having to edit the publish channel on each.</p>  <p>You first create the integration control by selecting “Create Integration Controls”:</p>  <blockquote>   <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFIntegrationControls_116AAPC-IC-Main_Screen_2.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="PC-IC-Main Screen" border="0" alt="PC-IC-Main Screen" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFIntegrationControls_116AAPC-IC-Main_Screen_thumb.jpg" width="244" height="143" /></a> </p> </blockquote>  <p>To edit an existing Integration control, you click on the <a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFIntegrationControls_116AAPC-IC-EditButton_2.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="PC-IC-EditButton" border="0" alt="PC-IC-EditButton" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFIntegrationControls_116AAPC-IC-EditButton_thumb.jpg" width="29" height="23" /></a> icon next to your integration control you want to edit. To create a new one you click on the Add New Control button.</p>  <blockquote>   <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFIntegrationControls_116AAPC-IC-AddMenu_2.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="PC-IC-AddMenu" border="0" alt="PC-IC-AddMenu" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFIntegrationControls_116AAPC-IC-AddMenu_thumb.jpg" width="175" height="84" /></a> </p> </blockquote>  <p>There are four different types of integration controls. </p>  <p><strong>VALUE Control</strong></p>  <p>A value control is where you can set a “hard coded” value.</p>  <blockquote>   <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFIntegrationControls_116AAPC-IC-ValueControl_2.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="PC-IC-ValueControl" border="0" alt="PC-IC-ValueControl" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFIntegrationControls_116AAPC-IC-ValueControl_thumb.jpg" width="244" height="103" /></a> </p> </blockquote>  <p>Fields:</p>  <blockquote>   <table border="1" cellspacing="0" cellpadding="2" width="600"><tbody>       <tr>         <td valign="top" width="141"><strong>FIELD</strong></td>          <td valign="top" width="459"><strong>DESCRIPTION</strong></td>       </tr>        <tr>         <td valign="top" width="141">Integration Control</td>          <td valign="top" width="459">This is a unique name for the control.</td>       </tr>        <tr>         <td valign="top" width="141">Description</td>          <td valign="top" width="459">This is a description for the control</td>       </tr>        <tr>         <td valign="top" width="141">Domain</td>          <td valign="top" width="459">You can select a Maximo Domain. If you do, then the Default Value must be in that domain.</td>       </tr>        <tr>         <td valign="top" width="141">Default Value</td>          <td valign="top" width="459">This is the value.</td>       </tr>     </tbody></table> </blockquote>  <p></p>  <p></p>  <p></p>  <p><strong>BOOLEAN Control</strong></p>  <p>A boolean control is where you can set a “hard coded” flag.</p>  <blockquote>   <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFIntegrationControls_116AAPC-IC-BooleanControl_2.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="PC-IC-BooleanControl" border="0" alt="PC-IC-BooleanControl" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFIntegrationControls_116AAPC-IC-BooleanControl_thumb.jpg" width="244" height="94" /></a> </p> </blockquote>  <p>Fields:</p>  <blockquote>   <table border="1" cellspacing="0" cellpadding="2" width="600"><tbody>       <tr>         <td valign="top" width="141"><strong>FIELD</strong></td>          <td valign="top" width="459"><strong>DESCRIPTION</strong></td>       </tr>        <tr>         <td valign="top" width="141">Integration Control</td>          <td valign="top" width="459">This is a unique name for the control.</td>       </tr>        <tr>         <td valign="top" width="141">Description</td>          <td valign="top" width="459">This is a description for the control</td>       </tr>        <tr>         <td valign="top" width="141">Default </td>          <td valign="top" width="459">Sets the control to True.</td>       </tr>     </tbody></table> </blockquote>  <p></p>  <p></p>  <p></p>  <p><strong>LIST Control</strong></p>  <p>A list control is where you can define a list of valid values for a field.</p>  <blockquote>   <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFIntegrationControls_116AAPC-IC-ListControl_2.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="PC-IC-ListControl" border="0" alt="PC-IC-ListControl" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFIntegrationControls_116AAPC-IC-ListControl_thumb.jpg" width="244" height="139" /></a> </p> </blockquote>  <p>Fields:</p>  <blockquote>   <table border="1" cellspacing="0" cellpadding="2" width="600"><tbody>       <tr>         <td valign="top" width="141"><strong>FIELD</strong></td>          <td valign="top" width="459"><strong>DESCRIPTION</strong></td>       </tr>        <tr>         <td valign="top" width="141">Integration Control</td>          <td valign="top" width="459">This is a unique name for the control.</td>       </tr>        <tr>         <td valign="top" width="141">Description</td>          <td valign="top" width="459">This is a description for the control</td>       </tr>        <tr>         <td valign="top" width="141">Domain</td>          <td valign="top" width="459">You can select a Maximo Domain. If you do, then the Default Value must be in that domain.</td>       </tr>        <tr>         <td valign="top" width="141">Default Value</td>          <td valign="top" width="459">This is the value.</td>       </tr>     </tbody></table> </blockquote>  <p></p>  <p></p>  <p></p>  <p><strong>Cross Reference Control</strong></p>  <p>A cross reference control is where you can create a cross reference list of values. With this, you can have the MIF convert one value to another. This is very useful for when domain values in the External System and Maximo are not the same.</p>  <blockquote>   <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFIntegrationControls_116AAPC-IC-XRefControl_2.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="PC-IC-XRefControl" border="0" alt="PC-IC-XRefControl" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFIntegrationControls_116AAPC-IC-XRefControl_thumb.jpg" width="244" height="139" /></a> </p> </blockquote>  <p>Fields:</p>  <blockquote>   <table border="1" cellspacing="0" cellpadding="2" width="600"><tbody>       <tr>         <td valign="top" width="155"><strong>FIELD</strong></td>          <td valign="top" width="445"><strong>DESCRIPTION</strong></td>       </tr>        <tr>         <td valign="top" width="155">Integration Control</td>          <td valign="top" width="445">This is a unique name for the control.</td>       </tr>        <tr>         <td valign="top" width="155">Description</td>          <td valign="top" width="445">This is a description for the control</td>       </tr>        <tr>         <td valign="top" width="155">Domain</td>          <td valign="top" width="445">You can select a Maximo Domain. If you do, then the Default Value must be in that domain.</td>       </tr>        <tr>         <td valign="top" width="155">Default Value</td>          <td valign="top" width="445">This is the Maximo Value.</td>       </tr>        <tr>         <td valign="top" width="155">Default External Value</td>          <td valign="top" width="445">This is the value from the External System.</td>       </tr>     </tbody></table> </blockquote>  <p></p>  <p></p>  <p></p>  <p>&#160;</p>  <p></p>  <p></p>  <p></p>  <p></p>  <p></p>  <p>Once you have created your Integration Control, you then have to associate it with your Publish Channel or Enterprise Service. You do this by selecting the Associate Integration Control option from the Select Action menu while editing the Publish Channel or Enterprise Service you want to associate them to.</p>  <blockquote>   <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFIntegrationControls_116AAPC-IC-AssociateControl_2.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="PC-IC-AssociateControl" border="0" alt="PC-IC-AssociateControl" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFIntegrationControls_116AAPC-IC-AssociateControl_thumb.jpg" width="244" height="101" /></a> </p> </blockquote>  <p>Fields:</p>  <blockquote>   <table border="1" cellspacing="0" cellpadding="2" width="600"><tbody>       <tr>         <td valign="top" width="154">FIELD</td>          <td valign="top" width="446">DESCRIPTION</td>       </tr>        <tr>         <td valign="top" width="154">Integration Control</td>          <td valign="top" width="446">This is the name of the integration control.</td>       </tr>     </tbody></table> </blockquote>  <p>You can either use the New Row button and add them one at a time or you can use the Select Controls button to select more than one at a time.</p>  <blockquote>   <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFIntegrationControls_116AAPC-IC-AssociateSelectControl_2.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="PC-IC-AssociateSelectControl" border="0" alt="PC-IC-AssociateSelectControl" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFIntegrationControls_116AAPC-IC-AssociateSelectControl_thumb.jpg" width="172" height="244" /></a> </p> </blockquote>  <p>Now that you have created and associated your integration controls, you can use them in processing rules.</p>  <p>&#160;</p>  <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:6c95b938-8d71-4148-b652-86a17247a6ca" class="wlWriterEditableSmartContent">Technorati Tags: <a href="http://technorati.com/tags/MIF" rel="tag">MIF</a>,<a href="http://technorati.com/tags/Maximo+7" rel="tag">Maximo 7</a>,<a href="http://technorati.com/tags/Integration+Contols" rel="tag">Integration Contols</a></div>
			
      ]]></description>
            
      <dc:subject>Maximo, Maximo 7, Maximo: MIF</dc:subject>
      <dc:date>2010-03-12T18:47:51+00:00</dc:date>
    </item>

    <item>
      <title>Creating a Cron Task</title>
      
      <link>http://webprod.taic.net/blog/article/creating-a-cron-task/</link>
      <guid>http://webprod.taic.net/blog/article/creating-a-cron-task/#When:18:46:22Z</guid>
      
      <description><![CDATA[
			
			<p>Within Maximo, you can create your own custom Cron Task. From an Integration point, you have to create a cron task if your requirements are for batch processing of data. The MEA/MIF are for instant message transfers.</p>  <p>The first step is to create a new class. You will want to extend the SimpleCronTask class. There are two methods that you must override. The first is getParameters(). If your cron task is to have parameters, then must override this method. If you have to parameters, then you can leave this method out.</p>  <blockquote>   <div class="csharpcode">     <pre class="alt"><span class="lnum">   1:  </span>    <span class="kwrd">public</span> CrontaskParamInfo[] getParameters() throws MXException, RemoteException</pre>

    <pre><span class="lnum">   2:  </span>    {</pre>

    <pre class="alt"><span class="lnum">   3:  </span>        CrontaskParamInfo <span class="kwrd">params</span>[] = <span class="kwrd">new</span> CrontaskParamInfo[5];</pre>

    <pre><span class="lnum">   4:  </span>    </pre>

    <pre class="alt"><span class="lnum">   5:  </span>        <span class="kwrd">params</span>[0] = <span class="kwrd">new</span> CrontaskParamInfo();</pre>

    <pre><span class="lnum">   6:  </span>        <span class="kwrd">params</span>[0].setName(<span class="str">&quot;Param 1&quot;</span>);</pre>

    <pre class="alt"><span class="lnum">   7:  </span>        <span class="kwrd">params</span>[1] = <span class="kwrd">new</span> CrontaskParamInfo();</pre>

    <pre><span class="lnum">   8:  </span>        <span class="kwrd">params</span>[1].setName(<span class="str">&quot;Param 2&quot;</span>);</pre>

    <pre class="alt"><span class="lnum">   9:  </span>        <span class="kwrd">params</span>[2] = <span class="kwrd">new</span> CrontaskParamInfo();</pre>

    <pre><span class="lnum">  10:  </span>        <span class="kwrd">params</span>[2].setName(<span class="str">&quot;Param 3&quot;</span>);</pre>

    <pre class="alt"><span class="lnum">  11:  </span>        <span class="kwrd">params</span>[3] = <span class="kwrd">new</span> CrontaskParamInfo();</pre>

    <pre><span class="lnum">  12:  </span>        <span class="kwrd">params</span>[3].setName(<span class="str">&quot;Param 4&quot;</span>);</pre>

    <pre class="alt"><span class="lnum">  13:  </span>        <span class="kwrd">params</span>[4] = <span class="kwrd">new</span> CrontaskParamInfo();</pre>

    <pre><span class="lnum">  14:  </span>        <span class="kwrd">params</span>[4].setName(<span class="str">&quot;Param 5&quot;</span>);</pre>

    <pre class="alt"><span class="lnum">  15:  </span>        <span class="kwrd">params</span>[4].setDefault(MicUtil.getMeaTextDelimiter());</pre>

    <pre><span class="lnum">  16:  </span>        </pre>

    <pre class="alt"><span class="lnum">  17:  </span>        <span class="kwrd">return</span> <span class="kwrd">params</span>;</pre>

    <pre><span class="lnum">  18:  </span>    }</pre>
  </div>
  <style type="text/css">



.csharpcode, .csharpcode pre
{
 font-size: small;
 color: black;
 font-family: consolas, "Courier New", courier, monospace;
 background-color: #ffffff;
 /*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
 background-color: #f4f4f4;
 width: 100%;
 margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style></blockquote>

<p>One VERY important thing is that on line 3, you must dimension the array to the exact number of parameters. Too many or too few will cause the cron task to not work.</p>

<p>The next method you must override is cronAction(). This is where you put the logic to what the cron task is supposed to do.</p>

<blockquote>
  <div class="csharpcode">
    <pre class="alt"><span class="lnum">   1:  </span>    <span class="kwrd">public</span> <span class="kwrd">void</span> cronAction()</pre>

    <pre><span class="lnum">   2:  </span>    {</pre>

    <pre class="alt"><span class="lnum">   3:  </span>        <span class="kwrd">try</span></pre>

    <pre><span class="lnum">   4:  </span>        {</pre>

    <pre class="alt"><span class="lnum">   5:  </span>            <span class="rem">// Procession Logic</span></pre>

    <pre><span class="lnum">   6:  </span>        }</pre>

    <pre class="alt"><span class="lnum">   7:  </span>        <span class="kwrd">catch</span>(Exception e)</pre>

    <pre><span class="lnum">   8:  </span>        {</pre>

    <pre class="alt"><span class="lnum">   9:  </span>            <span class="rem">//handel Error</span></pre>

    <pre><span class="lnum">  10:  </span>        }</pre>

    <pre class="alt"><span class="lnum">  11:  </span>&#160;</pre>

    <pre><span class="lnum">  12:  </span>    }</pre>
  </div>
  <style type="text/css">



.csharpcode, .csharpcode pre
{
 font-size: small;
 color: black;
 font-family: consolas, "Courier New", courier, monospace;
 background-color: #ffffff;
 /*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
 background-color: #f4f4f4;
 width: 100%;
 margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style></blockquote>

<p>You will note that the method does not throw any exceptions. This means you will have to handle all exceptions yourself. There are other methods you might need to look into (like one to see if it is ok to run, etc). </p>

<p>Now compile and place the class in the BusinessObjectsclasses directory structure. Now rebuild/deploy the ear. </p>

<p>Next you have to setup the cron task.</p>

<blockquote>
  <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterCreatingaCronTask_E62Ecrontask_2.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="crontask" border="0" alt="crontask" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterCreatingaCronTask_E62Ecrontask_thumb.jpg" width="244" height="85" /></a> </p>
</blockquote>

<p>Give your cron task a new name, description and enter the package name/class name.&#160; Now click the New Row button. If you get an error here, the 1) check to see if the class is in the location you specified in the class name and two, check the getParameters() method. If you dimensioned the array incorrectly, then you will get an error here. If you don’t get an error, then Maximo will query the getParameters() method to get the list of parameters and display it below.</p>

<p></p>

<p>OK, that is pretty much is. Now you just get to do a lot of testing. <img src="http://webprod.taic.net/images/smileys/smile.gif" width="19" height="19" alt="smile" style="border:0;" /> This works for both 6 and 7.</p>

<p>&#160;</p>

<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:341cff6b-0a8d-4053-af3b-6618a7af729e" class="wlWriterEditableSmartContent">Technorati Tags: <a href="http://technorati.com/tags/Maximo" rel="tag">Maximo</a>,<a href="http://technorati.com/tags/Cron+Task" rel="tag">Cron Task</a>,<a href="http://technorati.com/tags/Java" rel="tag">Java</a></div>
			
      ]]></description>
            
      <dc:subject>Maximo, Maximo 7, Maximo: Programming</dc:subject>
      <dc:date>2010-03-12T18:46:22+00:00</dc:date>
    </item>

    <item>
      <title>Maximo 7 Admin Mode</title>
      
      <link>http://webprod.taic.net/blog/article/maximo-7-admin-mode/</link>
      <guid>http://webprod.taic.net/blog/article/maximo-7-admin-mode/#When:18:45:16Z</guid>
      
      <description><![CDATA[
			
			<p>With Maximo 7, you now have to ability to do a Database Configuration from within the application. The first step is setting the application in Admin mode.</p>  <blockquote>   <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMaximo7AdminMode_D98BadminModeScreen_2.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="adminModeScreen" border="0" alt="adminModeScreen" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMaximo7AdminMode_D98BadminModeScreen_thumb.jpg" width="244" height="243" /></a> </p> </blockquote>  <p>Fields:</p>  <blockquote>   <p><strong>Number of Administrative Sessions Allowed:</strong> this determines how many ‘admins’ can log into Maximo while it is in Admin mode. I do not recommend setting this value to 0. More on this later. A value of 1 to 5 is a good value.</p>    <p><strong>Number of Minutes for user logout:</strong> this sets how long users will have to log out. This does not mean they will be forced out of the system however. Admin mode will not start until everyone (not admin) are out of the system. More on this later too.</p>    <p><strong>Update Properties:</strong> This saves the values of the above two fields.</p>    <p><strong>Turn Admin Mode On:</strong> This starts the process of turning on Admin mode.</p>    <p><strong>Cancel Admin Mode:</strong> If admin mode seems to be hanging and you want to stop it, use this button.</p>    <p><strong>Refresh Status:</strong> This will refresh the status window.</p>    <p><strong>Close:</strong> Closes the dialog window.</p> </blockquote>  <p>Now for a development instance, you might be tempted to just leave it in admin mode and do your work. This is not a good idea. Admin mode turns off all cron jobs and integration. If you are doing such development, you will be frustrated was nothing seems to work. It is always a good idea to turn Admin mode off after you are done with Database Configuration.</p>  <p>Now let’s talk about issues you might run into. First is that admin mode won’t start because it is waiting for user to log out. It is possible to find out who is logged (and to force them out). As it turns out, logged in users are stored in the MAXSESSION table. This statement will show you who is currently logged in:</p>  <blockquote>   <div class="csharpcode">     <pre class="alt"><span class="lnum">   1:  </span><span class="kwrd">SELECT</span> * <span class="kwrd">FROM</span> MAXSESSION</pre>
  </div>
  <style type="text/css">



.csharpcode, .csharpcode pre
{
 font-size: small;
 color: black;
 font-family: consolas, "Courier New", courier, monospace;
 background-color: #ffffff;
 /*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
 background-color: #f4f4f4;
 width: 100%;
 margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style></blockquote>

<p>To force someone out of Maximo, you can delete their entry in this table. BE CAREFUL!!!!!! This will not allow them to save or give them any warning. Also, do NOT delete every entry in this table as you will also kick yourself out of the system.</p>

<p>&#160;</p>

<p>Sometimes what happens is someone sets the “Number of Administrative Sessions Allowed” to 0 and when everyone logs out, no one can log in. Instead you get this message:</p>

<blockquote>
  <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMaximo7AdminMode_D98Badminmode-error_2.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="adminmode-error" border="0" alt="adminmode-error" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMaximo7AdminMode_D98Badminmode-error_thumb.jpg" width="244" height="91" /></a> </p>
</blockquote>

<p>Even if you restart the application server, you will still get this error. At this point the only way to fix it is to change a value in MaxVars and restart the application. Open your favorite SQL tool and run the following:</p>

<blockquote>
  <div class="csharpcode">
    <pre class="alt"><span class="lnum">   1:  </span><span class="kwrd">UPDATE</span> MAXVARS</pre>

    <pre><span class="lnum">   2:  </span><span class="kwrd">SET</span> VARVALUE = <span class="str">'OFF'</span></pre>

    <pre class="alt"><span class="lnum">   3:  </span><span class="kwrd">where</span> VARNAME = <span class="str">'ADMINRESTART'</span></pre>
  </div>
  <style type="text/css">



.csharpcode, .csharpcode pre
{
 font-size: small;
 color: black;
 font-family: consolas, "Courier New", courier, monospace;
 background-color: #ffffff;
 /*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
 background-color: #f4f4f4;
 width: 100%;
 margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style></blockquote>

<p>Now restart Maximo application and you should be able to log in. The last step is to set the Number of Administrative Sessions Allowed to something other than 0.</p>

<p>&#160;</p>

<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:aa488d05-b208-4e5f-bb1f-20595713fe7e" class="wlWriterEditableSmartContent">Technorati Tags: <a href="http://technorati.com/tags/Maximo" rel="tag">Maximo</a>,<a href="http://technorati.com/tags/Admin+Mode" rel="tag">Admin Mode</a></div>
			
      ]]></description>
            
      <dc:subject>Maximo, Maximo 7, Maximo: Programming</dc:subject>
      <dc:date>2010-03-12T18:45:16+00:00</dc:date>
    </item>

    <item>
      <title>New Attribute in MaxMessages table</title>
      
      <link>http://webprod.taic.net/blog/article/new-attribute-in-maxmessages-table/</link>
      <guid>http://webprod.taic.net/blog/article/new-attribute-in-maxmessages-table/#When:18:44:19Z</guid>
      
      <description><![CDATA[
			
			<p>In Maximo 7, IBM has added a new column to MaxMessages table. It is MSGID. This field is required and must be unique. Now you can put any value in here and Maximo will work just fine. However, if you want to use the new Deployment tool with Maximo, then the value of this field matters. The format is 5 characters, 4 digit number and then I, E or W. The 5 characters usually denote the project some way. I am not sure what the I, E or W stands for but my guess is Integration, Error or Windows message.</p>  <p>&#160;</p>  <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:6c817372-2abf-4699-8580-2874c35e68b9" class="wlWriterEditableSmartContent">Technorati Tags: <a href="http://technorati.com/tags/Maximo" rel="tag">Maximo</a>,<a href="http://technorati.com/tags/Maximo+7" rel="tag">Maximo 7</a></div>
			
      ]]></description>
            
      <dc:subject>Maximo, Maximo 7, Maximo: Programming</dc:subject>
      <dc:date>2010-03-12T18:44:19+00:00</dc:date>
    </item>

    <item>
      <title>Setting Maximo 7 Logging</title>
      
      <link>http://webprod.taic.net/blog/article/setting-maximo-7-logging/</link>
      <guid>http://webprod.taic.net/blog/article/setting-maximo-7-logging/#When:18:42:16Z</guid>
      
      <description><![CDATA[
			
			<p>There have been just enough changes to logging from Maximo 6 to Maximo 7. Most of these changes are nicer as you now manage logging through the front end and you don’t have to restart the application to make your changes active. However, one change is to where log entries are written. In Maximo 6, the were written to the console and to a log file. In Maximo 7, only to the console is enabled by default. That means that if you are running the application as a service, then you could have some issues trying to find the Maximo log info. What you have to do is turn on logging to a file. The first step is to access the logging screen. It is found in GoTo->System Configuration->Platform Configuration->Logging.</p>  <blockquote>   <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterSettingMaximo7Logging_C56CLoggingMainScreen_2.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="LoggingMainScreen" border="0" alt="LoggingMainScreen" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterSettingMaximo7Logging_C56CLoggingMainScreen_thumb.jpg" width="244" height="95" /></a> </p> </blockquote>  <p>Now, we need to specify were we want the file to be written. If you skip this step, then it will be somewhere in the application server directory structure. Now select Select Action->Set Logging Root Folder.</p>  <blockquote>   <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterSettingMaximo7Logging_C56CSetLoggingFolder_2.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="SetLoggingFolder" border="0" alt="SetLoggingFolder" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterSettingMaximo7Logging_C56CSetLoggingFolder_thumb.jpg" width="244" height="104" /></a> </p> </blockquote>  <p>Enter the location that you want the log to be written. I don’t know if it will create the directory for you, so just incase, make sure you create it first.&#160; </p>  <p>If, at this point, you applied your changes, you would find that nothing ever would get written there. That is because we have to turn on the file logging appender. To do this, Select Action->Manage Maximo Root Logger.</p>  <blockquote>   <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterSettingMaximo7Logging_C56CSetLoggingAppenders_2.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="SetLoggingAppenders" border="0" alt="SetLoggingAppenders" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterSettingMaximo7Logging_C56CSetLoggingAppenders_thumb.jpg" width="244" height="123" /></a> </p> </blockquote>  <p>Next to the Appenders field, there is a little icon. Click on it to bring up the Manage Appenders screen. Now check the box next to Rolling and/or Daily Rolling appenders. (Rolling will create a new file based on file size where Daily Rolling will create a new file each day.).</p>  <p>The last step is to Apply Settings. This will make your changes active and Maximo will now start writing log data to your folder.</p>  <p>&#160;</p>  <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:c9b61f5f-2f95-446a-9772-8f220ddc3a2b" class="wlWriterEditableSmartContent">Technorati Tags: <a href="http://technorati.com/tags/Maximo" rel="tag">Maximo</a>,<a href="http://technorati.com/tags/Logging" rel="tag">Logging</a>,<a href="http://technorati.com/tags/Maximo+7" rel="tag">Maximo 7</a></div>
			
      ]]></description>
            
      <dc:subject>Maximo, Maximo 7, Maximo: MIF, Maximo: Programming</dc:subject>
      <dc:date>2010-03-12T18:42:16+00:00</dc:date>
    </item>

    <item>
      <title>MIF&#45; Object Structures: Alias Conflict</title>
      
      <link>http://webprod.taic.net/blog/article/mif-object-structures-alias-conflict/</link>
      <guid>http://webprod.taic.net/blog/article/mif-object-structures-alias-conflict/#When:09:30:33Z</guid>
      
      <description><![CDATA[
			
			<p>We need to take a closer look at the Alias Conflict. An Alias Conflict is when you have column name that are the same in different MBOs. For example, if you create a MOS (MIF Object Structure) that includes ASSET and ASSETSPEC, then you will have a conflict of fields like ChangeDate and ClassStructureID and as both MBOs have these fields. Of course, this is not an issue if you are using XML message format. This only is an issue if you select the “Support flat structure.” If you have selected the “Support Flat Structure” and click Save, Maximo will then run a Conflict Analysis. If there are conflicts, Maximo will check the “Alias Conflict” check box.</p>  <blockquote>   <p><a href="/images/uploads/_images/WindowsLiveWriterMIFObjectStructuresAliasConflict_C312IOS-AliasHighlight_4.jpg"><img title="IOS-AliasHighlight" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="88" alt="IOS-AliasHighlight" src="/images/uploads/_images/WindowsLiveWriterMIFObjectStructuresAliasConflict_C312IOS-AliasHighlight_thumb_1.jpg" width="244" border="0" /></a> </p> </blockquote>  <p>This check box is important because if it is checked, Maximo will not let you add it to an External System. Resolving conflicts is pretty easy as when you select the Add/Modify Alias screen, it will put all the fields that are in conflict first.</p>  <blockquote>   <p><a href="/images/uploads/_images/WindowsLiveWriterMIFObjectStructuresAliasConflict_C312IOS-AliasConflicts_2.jpg"><img title="IOS-AliasConflicts" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="187" alt="IOS-AliasConflicts" src="/images/uploads/_images/WindowsLiveWriterMIFObjectStructuresAliasConflict_C312IOS-AliasConflicts_thumb.jpg" width="244" border="0" /></a> </p> </blockquote>  <p>You can then just give new aliases to the columns in conflict and save.</p>  <p>However, there seems to be a bug in the logic of the Conflict analysis. If, instead of giving the conflict fields new aliases, you excluded them (using the Exclude/Include fields screen), the conflict analysis would still show a conflict. And if you went the Add/Modify Alias screen, you would not find any fields listed in conflict. I don’t know the conflict analysis does not excluded fields that you have marked as “Excluded” or if there is some underling logic that still needs the columns to have different names. The solution is to, before you exclude any fields, go to the Add/Modify Alias screen and clear up any conflicts. Then you can exclude the fields and it will all be good. </p>  <p>&#160;</p>  <div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:15680573-4d80-4921-a1fc-338a1af03d29" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">Technorati Tags: <a href="http://technorati.com/tags/Maximo+7" rel="tag">Maximo 7</a>,<a href="http://technorati.com/tags/MIF" rel="tag">MIF</a>,<a href="http://technorati.com/tags/MOS" rel="tag">MOS</a></div>
			
      ]]></description>
            
      <dc:subject>Maximo, Maximo 7, Maximo: MIF</dc:subject>
      <dc:date>2010-01-12T09:30:33+00:00</dc:date>
    </item>

    <item>
      <title>MIF &amp;ndash; Object Structures</title>
      
      <link>http://webprod.taic.net/blog/article/mif-object-structures/</link>
      <guid>http://webprod.taic.net/blog/article/mif-object-structures/#When:09:26:51Z</guid>
      
      <description><![CDATA[
			
			<p>In Maximo 7, the Object Structures has changed a little from the Maximo 6’s version. An MIF Object Structure is made up of one or more Maximo Business Objects (MBOs). The basic functionality is the same as is in 6, but the screens have changed a bit. Before we look at the screen, we need to talk about names. In Maximo 6, this was call and Integration Object. In Maximo 7, these are called Integration Object Structures (from the menu structure to access the screen) or you will also see in the help them being referred to as MOS or MIF Object Structure (MOS). </p>  <p>Let’s have a look at the main screen. </p>  <blockquote>   <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFObjectStructures_12E73IOS-mainscreen_2.jpg"><img title="IOS-mainscreen" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="88" alt="IOS-mainscreen" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFObjectStructures_12E73IOS-mainscreen_thumb.jpg" width="244" border="0" /></a> </p> </blockquote>  <p>This screen is accessed from the Go To->Integration menu option. </p>  <blockquote>   <table cellspacing="0" cellpadding="2" width="599" border="1"><tbody>       <tr>         <td valign="top" width="160"><strong>FIELD</strong></td>          <td valign="top" width="437"><strong>DESCRIPTION</strong></td>       </tr>        <tr>         <td valign="top" width="160">Object Structure</td>          <td valign="top" width="437">This is a unique name for the object. This is a required field.</td>       </tr>        <tr>         <td valign="top" width="160">Description (untitled)</td>          <td valign="top" width="437">This is a field where you can give a description of the Object Structure.</td>       </tr>        <tr>         <td valign="top" width="160">Consumed By</td>          <td valign="top" width="437">This indicates what service will “consume” this Integration structure. Options are INTEGRATION, REPORTING and MIGRATIONMGR</td>       </tr>        <tr>         <td valign="top" width="160">Outbound Definition Class</td>          <td valign="top" width="437">Java class for filtering and processing for outbound records. This can be used to filter records that Maximo generates. This is used only by Publishing Channels or for filtering query responses.</td>       </tr>        <tr>         <td valign="top" width="160">Inbound Processing Class</td>          <td valign="top" width="437">Java class for processing inbound data. This class can be used to customize the processing of the MBO data (create/update/delete). It contains no logic for query responses.</td>       </tr>        <tr>         <td valign="top" width="160">Query Only</td>          <td valign="top" width="437">This check box indicates if the MOS is for querying data only. If checks, it will not allow records to be create or modified using the object structure.</td>       </tr>        <tr>         <td valign="top" width="160">Self Reference</td>          <td valign="top" width="437">This check box indicates if the MOS is self referencing.</td>       </tr>        <tr>         <td valign="top" width="160">Support Flat structure</td>          <td valign="top" width="437">This check box indicates if the MOS will support a flat structure. Although this only makes sense if you have more than one MBO in the MOS it is still required to check this if 1) you want to use flat files or Integration tables and/or 2) you want to assign Aliases to fields in the MOS.</td>       </tr>     </tbody></table> </blockquote>  <p>The bottom section of the screen is where you add the MBOs to you Object Structure.</p>  <blockquote>   <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFObjectStructures_12E73IOS-sourceObjects_2.jpg"><img title="IOS-sourceObjects" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="54" alt="IOS-sourceObjects" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFObjectStructures_12E73IOS-sourceObjects_thumb.jpg" width="244" border="0" /></a> </p> </blockquote>  <p>This is pretty much unchanged from the Maximo 6 screen.</p>  <blockquote>   <table cellspacing="0" cellpadding="2" width="600" border="1"><tbody>       <tr>         <td valign="top" width="163"><strong>FIELD</strong></td>          <td valign="top" width="437"><strong>DESCRIPTION</strong></td>       </tr>        <tr>         <td valign="top" width="163">Object</td>          <td valign="top" width="437">This is the name of the MBO.</td>       </tr>        <tr>         <td valign="top" width="163">Parent Object</td>          <td valign="top" width="437">This is the name of the MBO that is the parent object.</td>       </tr>        <tr>         <td valign="top" width="163">Object Location Path</td>          <td valign="top" width="437">This is auto filled in by Maximo.</td>       </tr>        <tr>         <td valign="top" width="163">Reporting Description</td>          <td valign="top" width="437">This is used when the Consumed By is ‘REPORTING’</td>       </tr>        <tr>         <td valign="top" width="163">Relationship</td>          <td valign="top" width="437">This is the name of the relationship used for join child to the parent object.</td>       </tr>        <tr>         <td valign="top" width="163">Object Order</td>          <td valign="top" width="437">This determines the order of the object in the structure.</td>       </tr>     </tbody></table> </blockquote>  <p>Next we will look at the options under the Select Action menu.</p>  <blockquote>   <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFObjectStructures_12E73IOS-SelectActionMenu_2.jpg"><img title="IOS-SelectActionMenu" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="128" alt="IOS-SelectActionMenu" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFObjectStructures_12E73IOS-SelectActionMenu_thumb.jpg" width="189" border="0" /></a> </p> </blockquote>  <p>The first option is the Exclude/Include Fields option. This screen allows you to mark fields to be either included or excluded from the Object structure.</p>  <blockquote>   <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFObjectStructures_12E73IOS-ExcludeIncludeFields_2.jpg"><img title="IOS-ExcludeIncludeFields" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="210" alt="IOS-ExcludeIncludeFields" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFObjectStructures_12E73IOS-ExcludeIncludeFields_thumb.jpg" width="244" border="0" /></a> </p> </blockquote>  <p>On this screen you can place checks by the persistent fields you want to exclude, and checks by the non-persistent fields you want to include. By default, all persistent fields are included. This means any new persistent fields added to one of them MBOs the MOS includes will automatically be added to the MOS.</p>  <p>Next option is the Generate XML option. This screen displays what the XML structure of the Object Structure will be. When you select this option you will see:</p>  <blockquote>   <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFObjectStructures_12E73IOS-generateXMLConfirm_2.jpg"><img title="IOS-generateXMLConfirm" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="107" alt="IOS-generateXMLConfirm" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFObjectStructures_12E73IOS-generateXMLConfirm_thumb.jpg" width="244" border="0" /></a>&#160;</p> </blockquote>  <p>Once you click OK, you will see:</p>  <blockquote>   <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFObjectStructures_12E73IOS-ViewXML_2.jpg"><img title="IOS-ViewXML" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="151" alt="IOS-ViewXML" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFObjectStructures_12E73IOS-ViewXML_thumb.jpg" width="244" border="0" /></a> </p> </blockquote>  <p>This is the XML structure of the object, not the whole integration message. This XML will be part of the integration message.</p>  <p>The last option is the Add/Modify Alias option. If, when you select this option you see this message:</p>  <blockquote>   <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFObjectStructures_12E73IOS-AddModifyAlias-Error_2.jpg"><img title="IOS-AddModifyAlias-Error" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="98" alt="IOS-AddModifyAlias-Error" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFObjectStructures_12E73IOS-AddModifyAlias-Error_thumb.jpg" width="244" border="0" /></a> </p> </blockquote>  <p>Then you have to check the “Support Flat Structure” check box. This is the Add/Modify Alias Screen:</p>  <blockquote>   <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFObjectStructures_12E73IOS-AddModifyAlias_2.jpg"><img title="IOS-AddModifyAlias" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="189" alt="IOS-AddModifyAlias" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFObjectStructures_12E73IOS-AddModifyAlias_thumb.jpg" width="244" border="0" /></a> </p> </blockquote>  <p>This screen allows you to create ‘alias’ column names. This is useful if the message coming in has different column names than what Maximo is expecting.</p>  <p>&#160;</p>  <p>There are two very noticeable omissions from the Maximo 6 screens. </p>  <ol>   <li>Merge Object. Merge Objects are no longer supported in Maximo 7 </li>    <li>User Fields. Although this option has been removed, the functionality has not. If you need to add a ‘user field’ to an integration object, then you have to create a non-persistent field on the base MBO, then mark it for inclusion in the Integration Object. You can then access the field in you User exit or Processing Rule. Although this is a little more more (you have to do a Database Configuration) it does give you more functionality as where User Fields were VARCHAR(50), this option allows you to define the field the way the data really is (any supported Maximo data type). </li> </ol>  <p>There is one more option that directly affects integration object structures but is not part of this screen. This is Restricted fields. A restricted field, as far as integration is concerned, means that any ‘auto’ functionality will not be applied to inbound messages. This includes the ID fields. You can access this option by Go To->System Configuration->Platform Configuration->Database Configuration. Then select your MBO and edit it. </p>  <blockquote>   <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFObjectStructures_12E73IOS-DBConfig-RestrictAttributes_2.jpg"><img title="IOS-DBConfig-RestrictAttributes" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="127" alt="IOS-DBConfig-RestrictAttributes" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFObjectStructures_12E73IOS-DBConfig-RestrictAttributes_thumb.jpg" width="244" border="0" /></a> </p> </blockquote>  <p>From the Select Action menu, select Restrict Attributes.</p>  <blockquote>   <p><a href="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFObjectStructures_12E73IOS-DBConfig-RestrictAttributeScreen_2.jpg"><img title="IOS-DBConfig-RestrictAttributeScreen" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="197" alt="IOS-DBConfig-RestrictAttributeScreen" src="http://webprod.taic.net/images/uploads/_images/WindowsLiveWriterMIFObjectStructures_12E73IOS-DBConfig-RestrictAttributeScreen_thumb.jpg" width="244" border="0" /></a> </p> </blockquote>  <p>Now you can check/uncheck any attribute you want to restrict.</p>  <p>&#160;</p>  <div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:4c302dda-9296-4f10-8f9a-2760895de11e" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">Technorati Tags: <a href="http://technorati.com/tags/Maximo+7" rel="tag">Maximo 7</a>,<a href="http://technorati.com/tags/MIF" rel="tag">MIF</a>,<a href="http://technorati.com/tags/Maximo+Integration+Framework" rel="tag">Maximo Integration Framework</a></div>
			
      ]]></description>
            
      <dc:subject>Maximo, Maximo 7, Maximo: MIF</dc:subject>
      <dc:date>2010-01-12T09:26:51+00:00</dc:date>
    </item>

    
    </channel>
</rss>