How to setup Adage to allow QC_TestResults to be passed as an AsynchBarcode transaction.
I wanted to be able to use ATF files to submit QC_TestResults. Here are some of my findings.
In the Adage Explorer, under Applications, there is a barcoding folder. First thing you need to do is change the Lot QC Test Results to use the Transaction Event Engine. (It is possible this is not needed, since it appears to work even if it is not checked.)
To check mark this setting click barcode transaction, then choose Lot QC Test Results, click update, then check Use Transaction Event Engine, then click Update.
If you notice on this screen you can see the format of the Lot QC Test Results.
First is Item, Pack, Lot, – -Test, – -Effective Date, – -Seq Num, – -Operator, – -Test Value, – -Result, – -Status, – -Tested By, – -Tested Date, – -Notes, – -Disposition Code, – -Disposition Comments
These directly relate to the format of the ATF. For example DT_PROMPT1 is Item, DT_PROMPT2 is pack etc…
RECORD_TYPE=PRFX
PRFX_CO_ID=DS
PRFX_EXT_PARTNER=DS
PRFX_DOC_TYPE=AsyncBarcode
PRFX_DOC_NBR=BCI105037
PRFX_TRANS_DIR=I
PRFX_DATE=2008-03-11
PRFX_TIME=10:50:37
PRFX_CONTROL_NBR=1I1205246801BCI105037
RECORD_TYPE=SO_ID
HD_TRANDEF_KEY=30
HD_BCPARAM_CMP=DS <==Company
HD_BRANCH=DSB <==Branch
HD_PLANT=DSP <==Plant
HD_USER=emorris <==User
HD_WHS=DSW <==Warehouse
DT_PROMPT_1=100100 <==Item
DT_PROMPT_2= <==Pack
DT_PROMPT_3=LOTA <==Lot
DT_PROMPT_4=Ecoli <==Test name
DT_PROMPT_5=1/2/1998 <==Test effective date
DT_PROMPT_6=1 <==Test sequence number
DT_PROMPT_7== <== Value is > < or =
DT_PROMPT_8=2 <== Test value
DT_PROMPT_11=emorris <== Tested by
DT_PROMPT_12=03/11/2008 <== Tested date
DT_PROMPT_13=This is a test of notes <== Notes field
DT_PROMPT_14= <== Disposition code
DT_PROMPT_15=Disposition comments <==Disposition comments
DT_PROMPT_16= <== If you were performing more than one test, than this field would contain the next test name.
RECORD_TYPE=ATFSUM
ATFSUM_CHECK=32
In this example from adage they had the test type as HD_TRANDEF_KEY=30
I was getting strange results from that and finally did a search for HD_TRANDEF_KEY what I found was a list of valid Trandefs were contained in bc_trandef_tbl. I found that Lot QC Test Results was actually HD_TRANDEF_KEY=31.
To get a successful test result submitted a few things are absolutely necessary and others are not.
The PRFX_DOC_NBR can be blank; it’s annoying in that it only allows 10 characters.
PRFX_DATE should be in month/day/year format and is required
PRFX_TIME is required.
PRFX_CONTROL_NBR is required and must be unique (stored of course in our favorite ei_queue_tbl)
HD_TRANDEF_KEY=31 (explained above, required)
HD_USER= (must be VALID user)
DT_PROMPT_1=item (required duh)
Items with lots appear to be in en_item_key
DT_PROMPT_2=pack (REQUIRED, if it is blank I believe it is a bulk order)
Packs in en_itqct_tbl
DT_PROMPT_3=lot (required)
Lots with tests attached in qc_specs_lotapproval_testsresult
DT_PROMPT_4=test name (Must Match Exactly)
Tests in QC_Items_specs
DT_PROMPT_5=Test Effective Date (THIS MUST MATCH, otherwise the file will make it into completed but will not update the results) THIS MUST MATCH DATE AND TIME!
In QC_Items_specs the max(en_itqct_effdt)
DT_PROMPT_6=test sequence number (required, 1)
DT_PROMPT_7= this is the sign, should be < = or > (NOT needed for qualitative)
DT_PROMPT_8= test value (NOT needed for qualitative)
DT_PROMPT_9= this is a free form text field for the ‘result’ up to 256 char
DT_PROMPT_10= this is the status of the qualitative test (REQUIRED for Qualitative)
1 = PASSED
3 = FAILED
DT_PROMPT_11= tested by (haven’t tested whether required or whether needs to be valid user or not)
DT_PROMPT_12= Tested date and time, 4/3/2008 8:07 AM
ATFSUM_CHECK=* (this is valid, with a control line feed after it)
In my case, VeggieTests.exe generates this info as an .XML file
**************XML*************
<AsyncBarcode>
<Prefix>
<CompanyID>NA</CompanyID>
<ExternalPartnerID>NA</ExternalPartnerID>
<DocumentType>AsyncBarcode</DocumentType>
<DocumentNumber>
</DocumentNumber>
<TransactionDirection>I</TransactionDirection>
<DateStamp>4/3/2008</DateStamp>
<TimeStamp>10:35 AM</TimeStamp>
<ControlNumber>04261a1cbdcc6-34bd-43b3-b</ControlNumber>
</Prefix>
<Header00>
<AlternateEntityType>SO_ID</AlternateEntityType>
<TransactionDefinitionKey>31</TransactionDefinitionKey>
<CompanyID0>NA</CompanyID0>
<BranchID>NATL</BranchID>
<UserID>dridgway</UserID>
</Header00>
<Detail01>
<Scanneddata1>FUR99-12030</Scanneddata1>
</Detail01>
<Detail02>
<Scanneddata2>CS20LB</Scanneddata2>
</Detail02>
<Detail03>
<Scanneddata3>04261</Scanneddata3>
</Detail03>
<Detail04>
<Scanneddata4>Aero Rob</Scanneddata4>
</Detail04>
<Detail05>
<Scanneddata5>3/29/2008</Scanneddata5>
</Detail05>
<Detail06>
<Scanneddata6>1</Scanneddata6>
</Detail06>
<Detail07>
<Scanneddata7><</Scanneddata7>
</Detail07>
<Detail08>
<Scanneddata8>5</Scanneddata8>
</Detail08>
<Detail09>
<Scanneddata9>
</Scanneddata9>
</Detail09>
<Detail10>
<Scanneddata10>
</Scanneddata10>
</Detail10>
<Detail11>
<Scanneddata11>dridgway</Scanneddata11>
</Detail11>
<Detail12>
<Scanneddata12>4/3/2008 10:35 AM</Scanneddata12>
</Detail12>
<Detail13>
<Scanneddata13>
</Scanneddata13>
</Detail13>
</AsyncBarcode>
**************XML*************
This is then converted by the TransformTool.jar
With the below script. What it does is take the definition of an AsyncBarcode from c:\AsyncBarcode_Inbound.xsl converts it into an .EIF and moves it to C:\einterface\Inbound\New
**************TransformTool setup file(InputFile.xml)********
<?xml version=”1.0″?>
<!DOCTYPE InputFile SYSTEM “C:\InputFile.dtd”>
<InputFile>
<Directory>
<DirName>c:\QCinput</DirName>
<DirType>.xml</DirType>
<DocTypes>
<DocType>
<DocName>AsyncBarcode</DocName>
<DocTransform>c:\AsyncBarcode_Inbound.xsl</DocTransform>
<NewFile>
<NewFileType>.eif</NewFileType>
<NewFileName>%DocumentType%_%ControlNumber%</NewFileName>
<NewFileDir>C:\einterface\Inbound\New</NewFileDir>
</NewFile>
<SaveOption>
<SaveOptionType>Save</SaveOptionType>
<SaveOptionDir>c:\temp</SaveOptionDir>
</SaveOption>
</DocType>
</DocTypes>
</Directory>
</InputFile>
**************TransformTool setup file(InputFile.xml)********
To test, assuming you have a test set up already (under Application, Enterprise, Quality Management, QC Test)
Next you have to create a specification (QC Specification) that will match your item and pack. And then attach your Test to it.
Now you can attach your specification to your lot. (Lot Specification)
That lot should now go on hold.
Now you can submit your test result ATF files. If everything works right the lot will go off hold.
To view test results go to Lot Test Results and select your Item, Pack, and Lot.
In the older versions of ADAGE (I don’t know how old this posting is), simply updating test results did not pass the lot. In the newer versions, there are enterprise (not company) level switches that controll the automatic passing of a lot when test results are entered.
Charlie
[…] Automating Software Testing Adage ERP, Coolearth Warehouse Management, VeggieTests Posted on February 26, 2009 by mellerbeck So I have been working on an easy VB.net app for submitting QC tests to adage through the TEE interface. As mentioned in this post https://michaelellerbeck.com/2008/04/03/how-to-setup-adage-to-allow-qc_testresults/ […]
Hi
I,m new to Adage.
I have been asked by my manager to develop a similar application for adage. Which will hold a track when the QC lab wants it.. So what I didi was I created a whole new DB for this and kept the held track information sepearately,and hoping to put the track into ‘HARDHOLD’. but by reading your post I get the feelling that by simply passing QC_TEST as barcode transaction you can achive similar results..? Am I right
Please reply .Thank you in advance.
Looks like in version 5.6 the tran def is back to 30