Showing posts with label CnCWorld. Show all posts
Showing posts with label CnCWorld. Show all posts

Monday, June 5, 2017

Auditing JDE: Column for Scheduler Server Status

In JDE the scheduler server is identified by the control record in the SYSXXX.F91300 table with a *SCHEDULER value in its SJSCHJBMN column.

The status of the scheduler server, as in, its active or inactive status, is represented in the SJSCHCTCD01 column.

 SJSCHCTCD01 has 000 if the scheduler server is down.

It can have the following values if the server is up and running:

111 - neither the job launcher nor the job monitor is paused

011 - the job launcher is paused but the job monitor is not paused

101 - the job launcher is not paused but the job monitor is paused

001 - both the job launcher and the job monitor are paused

Wednesday, December 7, 2016

Auditing JDE : Let's look at the Users

I was recently asked by a peer about F00925 and it's value in JDE audit. The specific question was about a particular column on it and why and when that column populates.

When I answered that question for him, it occurred to me that may be this is something that a lot of auditors and CNC's alike would like to know about.

A typical Test of Design document for JDE talks about getting extracts from the following tables to get to know about the User population of a particular JDE setup:

F0092 - Library Lists - User
F0101 - Address Book
F98OWSEC - One World Security
F00950 - Security WorkBench Table

The general idea is that if you have records in the User profile Table (F0092) and can match it with the Address Book (F0101), you would be able to judge the access a user has based upon the roles in the security work bench (F00950). F98OWSEC, is used to judge whether the user is active, when was the security last updated along with the frequency of password change set in the system.

In theory the above practice would give you enough opportunity to look through any unscrupulous access a system may have provided to any given user or a role. However, JDE is a much more nuanced system to be judged based upon just 4 tables. They may be able to lead you to the particular set of fields in a given table a given user may or may not have access to, but you would not be able to answer what all a given user can see, based upon data in just the above four tables concerned.

For that level of knowledge, you would need to have an idea of the normalized tables in the Address book as well as the Control tables that are involved in the setup of the Address Book. The default Address Book application provides 30 category codes. These codes can be altered via the UDC application to point to various aspects of business, like Profit Centers, Customer type, etc. For all of this to make any sort of sense the following list of tables need to be extracted from the JDE setup:

F00924 - User Install Packages
F00922 - User Display Preferences Tag File
F00921 - User Display Preferences
F0093 - Library List Control
F98OWSEC - One World Security
F00950  - Security Workbench Table
F00925 - User Access Definition
F95921 - Role Relationships Table
F00926 - Anonymous User Access Table
F9005 - Variant Description
F9006 - Variant Detail

F0092 - Library Lists - User
F0005 - User Defined Codes
F0004 - User Defined Code Type

 Armed with the above tables you can now determine any nook and corner that a user of interest may have access to in the JDE system. It still will not tell you whether the user gets powers to change statuses of projects etc, buts that's topic  for a different blog post :)











Monday, August 11, 2014

TAMTOOL: Slow Checkin and Get in OMW

One of the major issues with OMW use over a period of time, is deteriorating performance of Checkin and get methods.

I have seen systems where the screen almost freezes white when you try to do a Get.

This is caused by empty spaces in the spec files that may come in due to constant add and delete of data. These files can be defragmented using the TAMTOOL.exe to eliminate this crawling checkin and get.





To get an idea of the amount of free space that's there, just run the following from the command prompt :

c:\b7\system\bin32>tamtool -countfreenodes -a -p c:\b7\dv7334\spec\



If there are a lot of free nodes in the spec files, following would eliminate them:

c:\b7\system\bin32> tamtool.exe -clone c:\b7\DV7334\spec\gbrspec.xdb c:\b7\DV7334\spec\gbrspec.ddb c:\b7\DV7334\gbrspec.xdb c:\b7\DV7334\gbrspec.ddb -copydata


This should eliminate the performance issues related to Get and Checkin being slow.

I have only have to do this once in my last 8 years of being a CNC. Only did it on ERP 8. Will update the post when i get a chance to try this on the newer versions.


Monday, January 14, 2013

JDE Scheduler: Delete Jobs

One of the most common questions asked in JDE forums is why can't we delete jobs from the JDE Scheduler? There is a delete button out there that only throws an error message when pressed!

Well things are not always as simple as they look. And if they were, we poor CNC blokes would have appeared less crazy than we do :)

Here's what actually happens. Each Scheduler job has two records that are stored in the header (F91300) and the details (F91320) tables. So when you try and delete a job from the header, you run the risk of leaving a detail records that has no header and can never be launched. So JDE prevents this from happening by throwing the error message that you get, when you try and delete a Scheduled job from the P91300 application directly.

The correct way to delete these jobs is to run R91300B and then delete the records using P91300. R91300B does not clear the header to leave the audit trail. If you want to clear them, feel free to clear using the application.




Thursday, June 7, 2012

JDE Package Build: Pro Tip

Build your Production Full Packages on QA or Dev Enterprise Server ------- Yes you read that right! And no I am not smoking anything suspicious.

Seriously, there are more than one benefits of doing this. Before I actually go ahead and enlist the benefits, lets take a look as to how we can set this up. You now know that all you need to do for JDE system to recognize a server or machine is to update in a certain table somewhere. This will be no different! Lets see what all tables we need out here.

When we assemble a package , we select the server we want to build the package on based on the entries in F98611 (DataSource Master) Table. So that's where we need to change. Now, we have two DataSource Master Tables, one in the Server Map and one in the System data source. Here we will do the changes in F98611 in the System DataSource because thats where my System looks into for the server info.

If you have the same "SYSXXX" the entry for all your enterprise servers should already exist there and you will not need to configure anything separately. But if your SYSXXX for production is separate you will need to insert the QA server name in the table. This is what you will need to insert in the SYSXXX.F98611 table:

insert into sysXXX.f98611
select omenhv, 'NEWSERVERNAME' omdatp, 'newservername' omsrvr, omdatb, omoown, omdllname, omll, omlib, omomui, omomto, omomds, omomjd, omomcc, omdstp, ompid, omdatuse, omuser, omocm1, omjobn, omocm2, omupmj, omocm3, omupmt, omocma, omocmb, omocmc, omocmdsc from sysXXX.f98611
where omdatp ='NEWSERVERNAME' and omsrvr = 'newservername'

Insert, commit and restart your EOne services for the changes to take effect. Unless you restart the services the entry will not show up on the Server Selection Screen in the Package Assembly application. No points guessing why we need to bounce the services for the entry to show up in that table: Its a bootstrap table.

Now you can select your QA server when you are building a PD full package and the build happily runs on the QA Enterprise server. Yaay!

But wait! What happens after the build completes. You can not deploy a package built on the QA server onto the PD enterprise server, Can you?

Of course, not!! But there is something else we can do. Go onto your Deployment server, under the PACKAGE\packagename dir you will have a folder by the name of the Operating system of your PD enterprise server. Inside this you will have a "enterpriseservername.inf" file. Go ahead and open it.

It will look somewhat like this:

[SERVER PACKAGE]
PackageName=PD7334FQ
Type=FULL
Platform=SUN5.10Generic_139555-08
BuildMachine=qaentsrvr
BuildPort=6010
SPEC=1
SpecList=0 , 1 , 10 , 13 , 14 , 15 , 16 , 17 , 18 , 2 ,
BSFN=1
CAEC=1
CALLBSFN=1
CBUSPART=1
CCONVERT=1

You will need to update the name of the file to "pdentservr.INF" and change the BuidMachine to pdentsrvr. Save and exit.
There may be a case where you are running two different versions of OS on you enterprise servers. If that be the case, you will need to update the Platform accordingly. SSH into your PD enterprise server and run "uname - a " to get the OS name and just update it in the inf. This takes care of the client part of the build. Fun is at the server part.

For a package to be deployed the package has to exist in the /jdedwardsoneworld/exxx/packages dir of your enterprise server. Now, that we have build the package on the QA Enterprise server we need to send it over to this dir on the PD Enterprise Server. Make sure you have "sftp" enabled between the two servers and libraries for "tar" utility are installed on both of them. Here's how you transfer your package beween QA and PD Enterprise servers:
  1. ssh into your qa ent server
  2. go into the /apps/jdedwardsoneworl/packages dir using cd command
  3. run this tar -cvf  temppkg pdpackagename
  4. this creates a zip file called temppkg for your full package "pdpackagename"
  5. sftp pdentsrvr
  6. login with your passwd... its mandatory that you have the same userid owning all the jde files and folders on the two servers.
  7. go into the /apps/jdedwardsoneworl/packages dir using cd command
  8. run this ... put temppkg
  9. Once the copy completes login to your pd ent server
  10. go into the /apps/jdedwardsoneworl/packages dir using cd command
  11. run this... tar -xvf temppkg
  12. Voila .... you have your pdpackagename dir in the /apps/jdedwardsoneworl/packages dir
Now your pd package is ready for deployment. Oh my goodness!! So much effort just for Package build and deployment!!

Well, a lot of this is just one time setup.And it sure has a lot of advantages. Its time we see what they actually are. Here you go:

  • You can run a PD build during business hours. No night outs!!<Happy CNC>
  • Ube's running on the PD ent server will not affect the speed of build. <Happy CNC>
  • Scheduler server can continue to run while the build is ON and you can just stop it when you want to deploy the package <Happy Suits>
  • Your setup complies to the SOX control which abolishes installation of compilers on Production machines. <Happy Suits>
So two reasons to get a Happy CNC and two for the Suits, I say there can never be a more Win Win in a single act!!

Jokes apart, compilers on production servers are indeed frowned upon in the SOX parlance and there exists a way where we can avoid this completely in JDE. This also helps if you need to trouble shoot a build for anyreason, it can be done whenever needed with no affect to the business whatsoever.

I know this has become one long post and you may have questions about the approach. Well that's why whe have the comment section there. Feel free to ask away....


Jd Edwards by Donatienne Ruby, Christabel [Paperback]
Find us on Google+

Wednesday, June 6, 2012

Enterprise Server Migration: UNIX

In my opinion after Package builds, Server Migrations are the real staple food for a JDEdwards CNC consultant. The constant changes in OS technologies and the ever expiring hardware support contracts ensure that we do at least a couple of such migrations in a financial year. If your setup is configured for high availability then you get to do it more often than you would like.

I still remember as a young trainee getting a grasp of this was a nightmare. I have an unexplained fear of the Typical Installation Plan (P98240) application and the white space that it shows. Grids do not scare me as much as that particular white space. All the mumbling rumblings of creating and add on plan, adding the new enterprise server and then removing the old one went over my head in those days as a trainee. But I did one thing well, nodded my head as though I understood every last word of my trainer and sailed through the training. I am more of a guy who knows that if he is drowning he can swim but just wont do it for leisure in a swimming pool. I got to have the waves to challenge me.

Finally when I got to do my first real Unix Enterprise Server Migration at a client's place i dug deep. I dug so deep that I landed at the tables that govern them all. It all started making sense and i have done 9 such migrations this far. Lets talk about the tables that we should be looking at:
  • SYSXXX.F98611 : DataSource Master Table
  • SYSXXX.F986101: Object Configuration Master Table
  • SYSXXX.F91300: Schedule Job Master Table
  • SYSXXX.F9650: Machine Master Table
  • SYSXXX.F9651: Machine Detail Table
  • SVMXXX.F98611: Data Source Master (Server Map DataSource)
  • SVMXXX.F986101: Object Configuration Master (Server Map DataSource)
Here SYSXXX stands for the Sys schema in the database that has all the tables that fall under the "System - ProductVersion " data source. For instance System - 812 will have a SYS812 schema and System - B7334 will have a SYS7334 schema. Similarly there will be a SVM7334 schema for 'EnterpriseServerName - B7334 Server Map" data source.

If you just change the old server name to new server name in the above tables your migration is half done. Here's a sample Update query that can be run to update the same in say SYSXXX.F98611.

Update SYSXXX.F98611 set omsrvr = 'newserver' where omsrvr = 'oldserver';

 All you need to do is get the old server name and replace it with the new one, matching case to case.To get the entire list of updates that you should make, you can just go to the tables I specified and pick the values that you need to change. Once you get all the values it should be fairly easy chalking all the update statements out.  Be very careful with the case of the name, specially in Unix



The next step is fairly simple. Once you get the new server ready, make sure you have "rsync" command working on the new server. Make sure you have the same user id configured on this new box. Once you are able to login to the new box with the same id, follow the following steps.

  • Copy and paste your .profile from the old server to the new server
  • Make sure you can reach your database from the new server. If you have NAS mounts for the database clients make sure they are connecting properly
  • Check the "cc" libraries if they are consistent with those on the old server. Make sure the version is in the MTR.
  • Run "Rsync" to sync up the base "\jdedwardsoneworld" directory on the new server with the old server. Here's the syntax of typical rsync run:      rsync -avz --rsync-path=/usr/local/bin/rsync /apps/jdedwardsoneworld/* jdeuser@newservername:/apps/jdedwardsoneworld
  • Update the JDE.INI to reflect the newservername as the security server. Do this step only if you know that the old server was a security server.
  • Run ./RunOneWorld.sh and you should be delighted and dancing by now.
  • Before you get too excited run the porttest and check the output. 
So this is how I do my Server Migrations. I find it fairly easy to control and it keeps me away from the Installation Plan. Rather than executing something which I don't know the details of I am much more comfortable changing value and controlling my destiny!!






Tuesday, May 8, 2012

Configure JDE Development on Citrix

The Citrix platform provides an easy base for setting up development machines to support development in JDE from offshore. The fundamental logic behind setting development on Citrix is that all the users/developers accessing the environment will have a independent Pathcode created.

Since the default directory for a user resides under C:\Documents and Settings there is a need of changing the default user path. Incase of a shared citrix server it becomes mandatory that a new variable be defined at the system level which can then be used to define the default user path. In the script below the variable
%userpath% is the system variable which maps the user to D:\Users. This is also a good practice because the citrix login will copy the Pathcode over for each user hence mapping it to D: drive will save a lot of space on the System drive C:

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@echo off
net use J: /del.
net use J: \\deploymentserver\b7334
if exist %userpath%\%username%\b7\system\bin32\activConsole.exe goto startow
mkdir %userpath%\%username%
@echo Copying standard OneWorld Development Client to your profile...
@echo Please be patient - this takes up to 20 minutes and only occurs
@echo on the first use.....
mkdir %userpath%\%username%\b7
echo Copying authorization files.....
xcopy d:\b7\*.* %userpath%\%username%\b7\*.* /s /e /d /h /y
:startow
copy c:\windows\jde.ini %userpath%\%username%\windows\jde.ini /Y
@echo Starting Oneworld....
start %userpath%\%username%\b7\system\bin32\activConsole.exe
:end
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Save the script as ExecuteJde.bat and publish it via Citrix. The first time a developer executes it from the farm, it creates a B7 dir for the dev's login it under D:\Users and that becomes the patch code the dev uses every time he logs in.

In case of full package builds, just make sure all the local packages are deleted before the full package is installed on the system.

It is preferred that the users have a local profile as opposed to the roaming profile.

Tuesday, March 6, 2012

Sizing: JAS performance and DOM

Client work stations play a huge role in the performance benchmarking of any JAS architecture! This statement befuddles many people who view JAS as a sole entity entirely dependent upon the web server and the available bandwidth for performance. If type of processor on the client machine is mentioned in the recommendations list, there's a reason for it !!

Document object Model or DOM has a huge role to play in the working of EnterpriseOne JAS. DOM is a set of conventions for interacting with the objects in the HTML, XHTML or XML documents.  DOM presents HTML document as a tree structure. Objects in this tree can be accessed and manipulated using methods on them as specified in the DOM APIs.

Now, EnterpriseOne heavily relied on DOM objects for its functioning. The grids, for example, are stored as DOM elements on the client PC. These elements are processed and rendered by Java Script running on this client PC. So the entire time required to fetch data into a grid is spent on the local machine in processing these DOM elements rather than on the Web Server. Clearly larger the number of columns in the grid larger will be the number of DOM elements and hence greater will be the time to fetch, So now, if the grid columns are fixed and the database type is constant, its clear that a dual core pc will take far less time as opposed to a single core one in fetching records in a grid.

This is the main reason of recommending a level of hardware architecture for the local workstations when sizing for a new EOne implementation.






Wednesday, November 9, 2011

JDE CNC Interview Questions

If you landed up on this page searching for “JDE CNC interview questions”, you are at the right place. Read along to find what they ask, what they intend to ask, what they thought they were asking, what they cannot ask and how you should answer, what you should say in case you can’t answer or should you at all be interviewing for a CNC job and yes, you can thank me later.

The first thing that you should do is to stop searching for the interview questions and believe in the fact that there is no shortcut available to portray yourself as an excellent CNC. It’s not a set of instructions that you should know or a bunch of APIs you should know how to call and refer back to. It’s not the “do one time and forget it was ever coded” type of a job. You just cannot read a few pages and get into a CNC’s pinching shoes. No you can’t!!

CNC is a fire fight. It’s a trek through thorny bushes with a low quality slipper on in half pants on a dark night, may I add, without a torch. No, I am not over exaggerating a wee bit. Tell me if you can wake up in the wee hours of the night after you have had a three quarters of a large pizza and a couple of beer bottles to trouble shoot a failed package build or a hung UBE. Or get interrupted on a date for a question regarding why a UBE runs slow from citrix but fast from office. I don’t see any one nodding in affirmation. Yes, this is just a glimpse of a CNC’s work.

A CNC’s job requires a different attitude and a keen eye. It needs a person who loves technology to the extreme and is not bothered to hear complaints about it day in and day out. In fact, any complaints regarding a system to him, is an opportunity to sell an upgrade, a need to get more people involved. A CNC has to be a social butterfly and should be able to convince anybody and everybody that he is in control even in face of a catastrophe. He should know the system inside out rather than outside inwards.

So if you are asked to tell about package build, don’t act like it’s just a job that the dumb guy does at a developer’s command every now and then in your project. Rather be prepared with what’s an err file and how and when does the sts gets created. Know your F91300 when talking about schedulers and remember to talk about platform independence when trying to explain what’s so special about JDEdwards. If you are among the ones who cannot tell what’s the security type of a JDEdwards setup when the security server is not running, CNC is not for you. You just cannot handle the curve balls a CNC job throws at you if you have a unidirectional knowledge. Rather than looking for specific questions and answers invest your time in learning the system more. Learn to appreciate the technology within. Once you have enough respect for the system, you can go for any interview that a CNC job asks for. You will be ready for it.

Please remember that the views expressed are solely my own and I do not guarantee any success. But yes at least if you read this before posting for the quintessential “JDE CNC interview questions” in any JDEdwards forum, it will surely save you from some blushes.

If any CNC gurus land up here, please feel free to leave me a comment. And help me describe the job we all love (no I am not being sarcastic) with better examples than mine.

To all the budding CNC’s , good luck !!

Firefox Sync… a real make-life-easy feature..

Ohh yess.. this feature of Firefox deserves a real good shout out and is in every way remarkable for people who keep changing PC.. read.. keep getting forced to change PC’s. Its the next level to exporting-importing bookmarks … its Syncing your entire Internet ecosystem with your hand held device such that you can sync it with any other device you need to use Firefox on.

If you use Firefox 3.6.* you need to get the “Firefox Sync” Add-on installed to begin using this feature or if you use Firefox 4 beta its there by default. Sync not only moves the book marks between systems but also the stored passwords as well as the cookies. When you install the add-on it asks you to register and then enter a pass phrase for encrypting your data. Once done, all your bookmarks along with the passwords and the cookies are transferred to the Firefox server in an encrypted format. The beauty of the system is that even if you forget the pass phrase used, it stores the encrypted key on your system and it can be used anytime you are trying to sync another device.


The next step is to install the iPhone app Firefox Home and sign in with the user id created for Sync. Once through, all the data is then available on your phone and ready to be synced with any other PC you need to use Firefox on.

There is currently no app for the Android platform because Mozilla is working on Fennec, the complete firefox explorer for android. So there is Hope

DataSource Master and WSJ …

One of the most used app in JDE is WSJ or Work with Submitted Jobs or P986116. Irrespective of our roles in JDE we use this app to check for the job statuses that run on the servers. This is one of the trickiest things to configure when you have a split system and are going through a migration which involves changes in the hostnames of the parent servers. Lets have a sneek peek of what goes on behind the scene when WSJ is executed from a client pc.

1. P986116 gets executed and it lists the Data Sources from F98611 (Data Source Master).

2. When you hit on Find on P986116 the app queries the System.F98611 for all the Server type (SVR) data sources which are then returned on the grid.

3. Now once the data source is selected, the system sets the OMSRVR from the F98611 record as the hostname to be serached in SVM.F986110.

4. Status of the jobs are written in the SVM Job Control Status Master (F986110).

5. System then queries SVM.F986110 pulling up records for which the hostname matches the SVR of the DataSource picked.

If a Unix migration is being attempted care must be taken that the hostname of the machine matches the exact case of the OMSRVR field in F98611. In case of systems with muliple Enterprise servers the SYS.F98611 becomes the spine of everything working together. If there are multiple SYS’s then all of them need to be updated such that a user can query status of his job across the environments. Unless the SYS.F98611 are properly updated the DataSource changes will not show up and users will not be able to check job statuses of say, a job running in PD while he is logged in to QA.


Inclusive or Exclusive Row Security.. And the fight goes on!!

This is more like the Parry’s Coffee Bite Ad that we used to watch when we were kids… its toffee…its coffee. The only difference being rather than the candy that we enjoyed Row Security sometimes comes up as a nightmare.

The way ahead is much easier than what you may think of. If you are on 8.9 or higher release just go to the Form exit for Exclusive\Inclusive in the Security Workbench application (P00950) and you can see with your own two eyes what type of security is maintained in your system

If you are on my beloved ERP 8 just do it the old school way by running this query on your F00950:

Select * from sys7334.F00950 where FSUSER = ‘EXCLUSIVE’;

If a value turns up for the query it means you have inclusive security enabled in the system.

In case you are wondering about the meaning of both the security types and do not have access to GSC here are my two cents worth of idea:

Inclusive row security simply means that the value that the user can see are included in the from and thru values defined for him or his role.

Exclusive row security means that the values mentioned are excluded from the user’s view.

The select queries are generated based upon this security setup for the user by the jde middleware. Now I know what’s the real use of the middleware

Obtaining a list of tables for a specific column in Oracle DB.

If you are a CNC you definitely know that there may be multiple ways to do the same thing because that’s imperative for success. Now if I have a column name and I need to know all the tables in the database which have the particular column, I can easily do a XREF in fastpath and search for all the tables that use a specific data item. But in case you haven’t build the cross reference and there is a need to find it out , here’s what can be done in the old school way:

DBA_TAB_COLUMNS is a view that will help us obtain a list of tables for a specific column in Oracle database
.
example:

SELECT owner, table_name, column_name
FROM DBA_TAB_COLUMNS
WHERE column_name like ‘%ADDJ’
ORDER BY owner, table_name

The ID used to login to the db must have dba privilege for the query to work….. after all  what’s life without any limitations

My two cents of R92TAM and R98CRTGL!!

What R98CRTGL does, is to go through F9860 and find all tables that are neither bootstrap nor central objects and call the JDB_OpenTable API for that table.The JDB then finds the table specs.

It looks for the specs in glbltbl.xdb and glbltbl.ddb. As normal, the specs wont be there as we are trying to build them and it then looks into local TAM.If it doesnot find the dataitem in local TAM or dddict
it will then go to the RDB specs and JITI them. It is to avoid this JITI that we need to run R92TAM prior to running R98CRTGL.

Check Checkin/out status of Objects

Objects Checked out
select sipathcd as “Path Code”, simkey as “Machine”, SIOBNM, siuser as “User ID” from OBJ7334.F9861 where SISTCE != ’1′ order by siuser, siobnm;
Versions Checked out
select VRENHV, VRUSER as “User”, VRPID as “Object”, VRVERS as “Version”, VRMKEY as “Machine” from DV7334.F983051 where VRCHKOUTSTS=’Y’ order by vruser, vrpid, vrvers;
Objects created but never Checked-in
Select POOMWUSER, POOMWOBJID, POOMWMKLEY, POPATHCD from SYS7334.F98222 where POOMWOT !=’UBEVER’ and POOMWOST=01 and POOMWCHS=’1′ order by POOMWUSER, POOMWOBJID, POPATHCD;
Versions created but never Checked-in
Select POOMWUSER, POOMWOBJID, POOMWMKEY, POPATHCD from SYS7334.F98222 where POOMWOST=01 and POOMWCHS=’1′ and POOMWOT=’UBEVER’ order by POOMWUSER, POOMWOBJID, POPATHCD;

The Quintessential Fake Check-out technique

Won’t I be doomed if I ever forget this technique of faking a check out for the developer. In a scenario where a object has been modified without checking it out and
there is no save location available we can perform a fake checkout by following the simple steps below:
1. Open the Object with its Designer Tool in OMW
2. Check-Out the object in OMW.
3. Save the object in its Designer Tool.
…. light flash!! fake check-out is done.

Search for an application when you know what it does…

For newcomers into JDE CNC there are times when we forget the P***** name of an application that we want to use. For instance you are creating a new user in the system and now want to add the Role to the ID. Alas!! newsflash, you just can not remember the name of the application or the menu link to execute it. What a hopeless situation, which warrants asking for some help.  Well rather than picking the phone up and calling here’s what else can be done:
  1. Go to fastpath and type IV [Interactive Version]
  2. In the screen that appears open up the Visual Assist
  3. In the QBE for Description type %Role%  and hit find
  4. There you see the bright light flash. P95921 comes right in the list :)
As you search for an application in IV you can similarly search for a UBE in BV or a Table in the UTB visual assist.

Things to remember will be that search behaves differently for different databases in JDE. For Instance if you have a MS SQL DB and you search for say a user name in P01012 , it will be case-sensitive when you search in the Alpha Name field but the case wont matter if you have an Oracle DB.  :) I tried to clear one confusion but created another !!! Well that’s life… and the challenge of the unknown….

Windows Tricks

Contrary to the popular belief that E812 is the biggest user base of Oracle and no one uses XE or ERP8 any more, a lot of us work with clients who have  considerable investments in the good old versions of XE and ERP 8. Working with these versions means a CNC is constantly challenged by maintenance of Fat clients.
Imagine your self working to set up a new user and finding out that the admin access is missing and you need to add the user up. But the local policy denies you access to Computer management . Typical CNC day right :) Here is what you can do:
  • net local group Administrators domain\username /add
The user will get added to the local admin group and you can finish ur work and leave :)
Another important command with net is “net use”. It helps you to map the deployment server share to the user’s pc with the help of any id that you know has access to the share
  • net use * //depservername\ver /user: domainname\userid /persistent: no

Scheduler Server Jobs Status Update Issue with Oracle Database

The scheduler kernel uses the *Scheduler record in F91300 to know what machine is running the Scheduler Service. With the machine name, then finds in F98611 the Logical Datasource for that machine
and uses the value in the Database Name as the Server Map datasource for the bootstrap tables.

When the database is other than Oracle (hence ODBC), the Database Name field value coincides with the naming convention of Datasources for OneWorld/E1 (i.e ENTSERVER – B7334 Server Map).
But if the database is Oracle, the Database Name is the ORACLE DB name (i.e. OWERP8, which does not exist as a ‘Server Map’ datasource in F986110 for the Server).

Manually create a logical datasource that is a copy of the Server Map datasource by following the instructions below:

1. Sign into EnterpriseOne.

2. Run the “Database Data Sources” application (P986115).

3. Select the “ServerName – B7333 Server Map” from the “Machine Search & Select” form.

4. Make sure that the value of the “Data Source Use” search field of the “Work With Data Sources” form is set to “DB”. Then, click on the Find button.

5. Search for “ServerName – B7333 Server Map” data source in the grid. When you have found the data source in the grid, hightlight it and click on the Copy button of the “Work With Data Sources” form.

6. For the name the new database datasource, use the name of the Oracle database that appears in the JDB9900245 error message. Do not change any other fields on the “Data Source Revisions” form.

7. Click on the OK button of the “Data Source Revisions” form to save the new database datasource.

8. Exit out of OneWorld.

9. Restart the EnterpriseOne services for the change to take effect.

Corrupt Scheduler Server Record..

When JDE scheduler hangs up for certain reasons and none of the schedule jobs look like they will be executed, its very tempting to restart the scheduler server from the P91300 application. But remember in JDE there is a concept which states that just because an option is there it doesn’t necessarily mean that it will work (Product Packaging anybody!!!).
If you try to stop and start the scheduler server from the P91300 application, it corrupts the *Scheduler record in the system.f91300 table.
To start the scheduler server again stop the jde services, update the SJSCHUSER column with the security server port number for the setup and restart JDE services again.