Thursday 13 November 2008

Manifest - shite-fest

The manifest at one of my clients is all wrong. The full package thinks one thing, the web server another - what always occurs is that the web server clears it's serialised objects - thanks for that - awesome!

There are some calls in the KG about if the pacakge is built in the afternoon, the date time stamps will be wrong between manifests (12 hours out) and this will cause the clearing of serialised objects - nice one JDE.

Am I able to insert documents in my blog? I might try to insert it as a image?? Nope that does not work. you can get this half decent document from the metalink3 site.

The manifest is stored in the F98770 table, it is also stored in the F989999 table with particular formats (which I'm attempting to find).

Ahh, found the fu*ker

select wbuid, wboid from py812.f989999 where wboid like '%MANI%' ;

WBUID WBOID
-------------------- --------------------------------------------------
DEFAULT MANIFEST-MANIFEST

So, I wonder what this looks like in databrowser.

You gotta guess the contents...

When you do a generate-manifest from the java generator, it reads the MANIFEST-MANIFEST record from the F989999 that you are currently looking at.

When you generate a manifest, the code works out the latest full package and then selects from the F98770 table for that package, ie:

SELECT SMERBLOB FROM dbo.F98770PY812FH WHERE ((SMFMAT = ? ))

Then does:
Entering createSOManifest. Pathcode = PY812; specManifest = SpecManifest, type PACKAGE; audit track = Audit: user = JDE, host = nsgshsjdnwb01u, port = 6014, Timestamp = Thu Nov 13 13:46:19 EST 200

Then it deletes the manifest record from the F989999 and replaces it with the record from the F98770.

DELETE FROM CRPDTA.F989999 WHERE ((WBUID = ? AND WBOID = ? ))
INSERT INTO CRPDTA.F989999(WBJPO,WBUID,WBOID,WBLNGPREF) VALUES (?,?,?,?)

The thing is, this does not write any of the updates.

It gets the correct build and deploy dates, but none of the updates that are in the F98770.

???WTF???

So it seems that you can nick a manifest from another package, by getting the MANIFEST-MANIFEST record - but it's tough to get all of the correct stuff from the F98770 into the F989999 to stop your serialized objects being truncated all of the time... Damn those BLOBS!

I read somewhere that if you generate any object with the WebDevelopment=FALSE set, the MANIFEST would be set straight... Lets test this.

Note also that the manifest has FU&# all to do with the package that you are doing the generation from, which is SHIT. It just reads the currently deployed package and writes that to the manifest. You gotta make sure that you deploy your package before you generate your manifest, otherwise you'll be in sh#tsville.

So, I logging into the generator with WebDevelopment=FALSE (you cannot see the manifest option, cool). Generated the R0010P and went back in to check the manifest. Note that wen you have WebDevelopment=FALSE, you get the standard JDE splash screen and login, not the little popup.

That fixes it!!! It actually writes the proper manifest record with all of the update packages.

I really don't know about this, I'll need to have a good think about it. What I do know is that it's crap.

No comments: