Kevin Cummings's Profile
Agile Angel
3573
Points

Questions
5

Answers
233

  • You aren’t asking for much…….  <grin>
     It is possible to get all this data from the database, but not all in 1 query (unless you want a HUGE query). Note that you could use the ITEM_P2P3 view to get most of the title block/P2/P3 stuff, but you would still have to convert all of the ID values into actual text (using NODETABLE and LISTENTRY). And that view will give you *ALL* of the attributes, no matter whether they are visible/used or not. All multitext P2/P3 attributes are held in the AGILE_FLEX table. Multilist attributes usually have  their data in the attribute itself unless you have enough ID values assigned that it exceeds the length of the attribute, in which case the values are held in the MSATT table. History, BOM, Revs/Change, AML, Relationships, Compliance, Attachments, etc. are all in separate tables, linked to the ITEM table via the ID attribute.   And of course, there is *no* public documentation on how the Agile schema works. And it is highly normalized, so IDs are much more prevalent than text values. I would suggest that you start simple (title block, P2 and P3) and work your way through how to make the data intelligible. Ask questions when you get stuck.

     Of course, you could also learn to use the Agile API/SDK, and write programs to get the data and never have to figure out the database schema.

    • 4573 views
    • 4 answers
    • 0 votes
  • Agile Angel Asked on April 15, 2016 in Agile PLM (v9).

    Yes, you can, but I would really REALLY caution against modifying anything directly in the database.
     Every item has the introductory rev record, so you cannot look for where the item has no records in the REV table. Instead look for items where REV.CHANGE > 0 :
    select id, item_number from item i where not exists (select null from rev where item = i.id and change > 0);

     If you really want to look at any item that only has the Introductory Rev *or* is only assigned the “Preliminary” status, then you need to get a bit deeper into what ID is used by any lifecycle phase value that you take to mean “Preliminary” (the default value is ID = 976).

    • 2180 views
    • 2 answers
    • 0 votes
  • I know that there are various “bridge” applications out there (google “PLM Bridge”) that would work given what you are asking, but they are not cheap. The point that Patrick makes is a very good one, why have a CMS system when Agile can do the same stuff very well, and that eliminates the need for an interface and the CMS system. Keep things as simple as possible to meet the business needs. Adding an interface and CMS system just introduces headaches, cost and issues unless there is a very real need to keep things separate and distinct.
     But to directly answer the question, ACS can be used to extract and send data from Agile to a CMS system. You can write a PX to do this, and put the files in a specific directory.  Then you have a very simple program on a schedule to check the extract directory and send the extracted files to your CMS system. Over there, you would need a similar setup, have a scheduled program to look at the FTP directory every 5-10 minutes, and if anything is there, import it into the CMS system. Going the other way is much the same.
     It may sound simple to do, but it ISN’T. You need adequate logging/notification in the event of errors, etc., as well as what should happen when an error occurs (re-process, send an email, ??). You will need someone who knows how to program using the Agile SDK to do any of this. If you expect large files, then you have to make the schedule interval long enough to be able to process everything. Do you process each file individually and then reset, or do you process everything in the directory until done??   LOTS of things to consider in doing this right.

    • 2647 views
    • 10 answers
    • 0 votes
  • Agile Angel Asked on March 23, 2016 in IT and Networking.

    There is a general fix-it script named “adt_generic.sql” (look for adt_generic.zip on the support site). This script will check for and fix most (but not *all*) Averify errors, and it is occasionally updated to include fixes for new issues. Note that it will create backup tables as it fixes things, and so you might end up with a LOT of extra tables in the database. But you can remove those after things have been running for a month or 2 without problems. I wouldn’t be surprised at all that they send it to you in response to your SR.

     And no, there is virtually NO documentation on the Agile schema. Originally they didn’t want to “encourage” customers to try to modify/extract/add/delete data by any means other than the application itself. Given the complexity of the schema, it was a very good thing at the time. But now I think not so much.

     Oh, and look in Averifyscriptstestcases for the script that produced the error (AGIL-00025013 errors are generated by AGIL-00025013.sql). Sometimes (maybe ~30-40%) the script includes a comment on how to fix the issue, or has a remnant (see below) from when Averify could fix things (that is no longer possible because some/most issues are not that simple to fix).

    if (:aFixErrors = 1) then  — AGIL-00025040
       aMessage := :aMessage || ‘ Subclass has been set to default ”User Subclass”. Verify this user”s subclass after restarting Agile.  ‘;
       update agileuser set subclass = 11610 where id = csr_rec.id;
    end if;

     Then again, let the adt_generic script fix things unless you REALLY understand the error and what it means.

    • 2956 views
    • 5 answers
    • 0 votes
  • Agile Angel Asked on March 17, 2016 in Agile PLM (v9).

    There is no way to *not* write history records in Agile, it is part of the basic functionality of the application. It may be possible to occasionally purge the history tables, but unless you only delete those records pertaining to those imports, you might lose information that is critical. Do you have to submit data to the FDA?? If so, then you cannot remove any history without letting the FDA know and approve of it.
    It is possible to remove selected records, but I would make sure that they are far in the past (how long has this import processing been going on??)  and that they pertain only to the import processing (which seems pretty innocuous). If you don’t already have a specific user account that is only used for this import processing, I would recommend doing so, as it would then be easy to identify which records are from that processing vs. what is being done by normal users.

    • 1953 views
    • 2 answers
    • 0 votes
  • Any attribute that begins with “IM” is intended to be used by the Innovation Management features that were introduced in Agile 9.3.3.0 (refer to section 3.8 in the “What’s New in Agile PLM White Paper” for 9330 [E39276-01]). You can use these attributes as you see fit, but if you do use any of the IM functions, the IM attributes are hard-coded to be used by the IM functionality, so other data may get overwritten  by IM data. Unless you will never use IM, stay away from using those attributes (it’s just as easy to add flex attributes).

    • 2533 views
    • 1 answers
    • 0 votes
  • That attribute tells you what type of configuration object the record pertains to. You can find the list of values and descriptions under parent ID 101 in LISTENTRY.
     Note that there are things like “TabType” and “TabsType” (ID values 9 and 10) in there, and the difference between them is that TabType would be for the actual tab names that you would see in the GUI, whereas TabsType would be a heading under a class/subclass under which the actual Tabs would be collected/listed. A seemingly minor but significant difference.

    This answer accepted by BurhanBKB. on May 13, 2024 Earned 15 points.

    • 2040 views
    • 1 answers
    • 0 votes
  • There are 2 ways  to interpret your question : Get data for a specific object and/or tab in the application, or get data for specific records in a specific table.
     For the first, your question is rather broad, as every business object has different attributes, and therefore the means of getting the data would vary depending on the table (or tables) you wish to access. But it would require knowing how to handle the various data types (how are multi-list attributes processed??).
     For the second, just about every table in the database has a unique value in it’s ID attribute (a few do not have an ID attribute, but that’s an entirely different question). Figuring out what that ID value is requires knowing the table key value(s). For instance, the item number or the combination of assembly number/component number/assembly revision (and therefore change) for a BOM record. Since you have to know the key value(s), you can already identify the records you wish to access.

     Using the API as Antonio suggests is the best means of accessing data from the database. Trying to use SQL*Plus (or PL*SQL) will require that you figure out how to process list, multilist, multitext, money and weight values (since none of them are simple and straightforward, although list can be pretty simple, depending on the attribute). The same thing applies when using the API, you can select distinct rows knowing the key values, and so get what you want.

    • 2400 views
    • 2 answers
    • 0 votes
  • PROPERTYTABLE.DATATYPE details the type (text/list/number/date) of the data value that is being defined in the record. Although I am not certain of this, I believe that the list shown below correctly defines what those values mean. The vast majority of the records show as 0, 1 or 2, with 3 not too far behind. Almost none are 4, and only a few being 5. And most of the ones with 4 or 5 are to define default values.
    — 0 = Text/Multitext
    — 1 = List
    — 2 = MultiList
    — 3 = Numeric
    — 4 = Date
    — 5 = Money/Cost

    This answer accepted by BurhanBKB. on May 13, 2024 Earned 15 points.

    • 2286 views
    • 1 answers
    • 0 votes
  • Agile Angel Asked on February 23, 2016 in Agile PLM (v9).

    Yes.   The logic around updating the “attachments” bit in the FLAGS attribute for revisions has had this issue for quite a while (since at least 9.3.1.0), especially when the item revision has more than 1 attachment linked to it. No idea what the cause is, but what is going on is that the flag bit isn’t set correctly for whether the revision has any attachments linked to it (and it goes both ways – no attachments but the flag bit is set, and attachments but the flag bit isn’t set). It may simply be an issue with updates when the File Manager is busy, or there is contention for the revision record. I am certain they will figure it out and fix the issue, but there may be a lot of other related stuff going on that you and I have no clue about. I seriously doubt there is anything you can do to prevent it, other than to run Averify every 15-30 minutes and checking the results.
    For now, keep the fix script handy and run it when needed. I have the script, and use it as needed.

    • 3696 views
    • 2 answers
    • 0 votes