Matt Paulhus's Profile
Agile Expert



Item Master, Scripting events, Agile Administration Also used 9.3.4. at Crane Aerospace & Electronics, Redmond, WA
Title Configuration Analyst
Company FujiFilm Sonosite
Agile Version 9.3.3.
  • Agile Expert Asked 7 hours ago in Other APIs.

    Thanks Swagoto – that’s usual but not exactly for my purposes.

    I was wondering if  there’s a way to actually copy the file into a database table cell (blob or text type, specifically).  What you gave me helps me get a link like C:AgileFiles\000?0%9agile77041234.pdf but that’s not the same has having an external (internal to firewall but external to Agile) database actually have a copy of the file.  Is there a way to push the byte data of a file into a database cell?

    • 3 answers
    • 0 votes
  • You received a null pointer exception which does indicate that Agile tried to get an object but that object was null.  It’s like adding an item number to the affected items tab versus IItem.  Looks like you figured it out.  In my earlier answer, if you didn’t have enough required fields to create the row, I think the normal error message you would have received there should have been an “Invalid Parameter”.

    • 3 answers
    • 0 votes
  • True – I haven’t dealt with IPrograms but ITransfer Order Where Sent table and a Part’s Manufacturers table requires the same thing – you need two or more different fields added to a Map object in order to create the row.

    • 3 answers
    • 0 votes
  • Agile Expert Asked 4 days ago in Other APIs.

    I guess if I need to re-frame my question:  is there a way for a connection to pull a file from Agile or get a file via database query (not the meta data, but rather the hard data or blob/clob data).

    • 3 answers
    • 0 votes
  • Agile Expert Asked on July 2, 2018 in Other APIs.

    Try the Rev table.  I haven’t dived too deeply into this, but it should just be as easy as this (though I’m not sure this is pulling items that have a pending change or not):

    SELECT item_number 
    FROM   item i, 
           rev r 
    WHERE = r.item 
           AND ( rev_number IS NULL 
                  OR rev_number LIKE ‘Introductory’ ) 
           AND r.CHANGE = i.latest_released_eco

    • 3 answers
    • 0 votes
  • Agile Expert Asked on June 27, 2018 in Product Collaboration.

    I would definitely check the Database it see if there’s anything wrong with either the ECR affected items tab or that item itself. 

    Oracle Doc ID 1668825.1 might help you a bit here but the Oracle support website indicates that it could be a bunch of different issues. Try looking up the error message on the Oracle Support site and you’ll see what I’m talking about.

    • 3 answers
    • 0 votes
  • This can be done via groovy script though too.  

    The simplified script outline would be something like:

    void invokeScript(IBaseScriptObj obj) {
    IAgileSession session = obj.getAgileSDKSession()

    def change_list = [“ECO1234”, “ECO1235”, “ECO1236”]

    change_list.each { change_number ->     //start looping through all of the change_list list of ECOs, defining each value as <change_number>
    IChange change = session.getObject(IChange.OBJECT_TYPE, change_number)  //get the Change dataobject
    change.approve(“mypassword”, “I’m approving this via automatic script”)    //approve it via the IRoutable Interface 
    } //done looping through all of the defined ECO numbers 

    I just tested this and it works just fine. 

    There’s other ways to do this and even get your workflow routing list dynamically, but I find that if you’re doing something on such a one-off script like this, just export your list of ECOs and other Changes to Excel, use this formula to get it into the right template ( =””””&A1&”””,”) and copy the results into an arraylist like above.  

    (you can use DataLoad tool with Agile?  Cool, I could never get that to work before.)

    • 3 answers
    • 0 votes
  • I had this issue before but I’m sure that it can be caused by a bunch of things.

    In my case, we were trying to rev an item that had something like 20, 30, 40, 50+ child levels on its BOM.  Even though there weren’t any redlines on the ECO (or even MCO), the Agile-Oracle database still updates that BOM with a new Change Id.  So as Agile was trying to update the part BOM with the most recent ECO number, our DBA watched as Agile kept trying to get a BOM explosion report via SQL from the database to update.  Therefore we eventually fixed it by simplifying the BOM.  You may be having something similar due to either the large number of affected items or something weird with one or more of those affected items.  Do also run averify just in case there’s any data corruption issues that’s causing issue.

    Please also see Doc ID 2214465.1 and Doc ID 2321864.1 on the Oracle website. 

    Try that.  The lovely “the operation did not complete within a stipulated time” is set for 15 minutes in our system.  So if something takes longer than 15 minutes to do, Weblogic kills it and rolls the process back.

    • 3 answers
    • 0 votes
  • Agile Expert Asked on June 18, 2018 in Product Collaboration.

    My company uses an MES that has its own bill of processes and my last company housed that information in Oracle ERP.  Agile doesn’t specifically have bills of process as a separate function though in my experience you can tinker with that idea by putting documents on a bills of material (thus for each process document/work instructions, the where used tab shows the applicable parts its used on).  I almost did something similar by creating a Process as a Document subtype to put on the part BOM or even in the relationship tab. 
    I’d argue that Agile doesn’t specifically have a BOP because, in some respects, Agile is your as-planned baseline for how a product is configured, while it leaves other systems to house your as-built baseline (i.e., execution).  Hope that makes sense.

    • 4 answers
    • 0 votes
  • Agile Expert Asked on June 15, 2018 in Product Collaboration.

    Hi Kulbhushan,

    You’d want to iterate through an item’s (i.e., IItem object’s) BOM table via groovy script or convert into Java as a Java process extension.

    Something like this:
    IItem item = session.getObject(IItem.OBJECT_TYPE, “Part1234”)
    ITable BOMtable = item.getTable(ItemConstants.TABLE_BOM)
    Iterator iter = BOMtable.iterator()
    while (iter.hasNext()) {
             IRow row =
            String number = row.getValue(ItemConstants.ATT_BOM_ITEM_NUMBER)
            println number
    }  //done iterating through item BOM

    See the Agile 9.3.X SDK Developer Guides for more info.

    • 4 answers
    • 0 votes