Welcome to JRI's Help page for New Part Sign Off

Base Avante has no way to distinguish between:

  1. A new inactive part that will be coming on-line soon vs.
  2. A dead inactive part that will never be sold again

The New Part Workflow Sign Off enhancements contain a solution to this deficiency. Base Avante only uses codes 0 (INACTIVE) and 1 (ACTIVE). Several years ago, Julius added code 2 (HISTORIC).

To be backward compatible with BI, the code of "0" was decided to be used for "dead" parts.

This projects adds code 3 (NEW) plus all the logic needed to work correctly.

Prior to the New Part Workflow Sign Off project, programs were all (inconsistantly) hard codes to work as needed based on the code. As the first part of this project, I added new fields to the SYSTBL ESC (Engineering Status Codes) codes and changed the existing programs to be table driven (not hard coded). This was followed up by the addition of a new code, 3 (NEW).

The New Part Workflow Sign Off changes involved a number of enhancements to the SYSTBL ESC codes. Base Avante only uses codes 0 (INACTIVE) and 1 (ACTIVE). Code 2 (HISTORIC) was added by Julius to track/drive active parts that we are phasing out - still active but we can't manufacture or purchase additional inventory - once all inventory is gone, the status should be changed to 0 (INACTVE/DEAD).


There are 3 new fields associated with each ESC code:

Status Order PO/MRP
Is this code Active or Inactive
Only active parts may be sold
The "life cycle" order of the codes Is this code usable by POs and/or MRP
It is a little confusing to have code descriptions of "Active"/"Inactive" and having statuses of active/inactive, but I honestly could not thing of better terminology for this.

When adding a new part to Avante, the initiator (person who initiates the New Part Workflow Sign Off logic) runs BOM3000 to add the initial information. The Eng Status of the new part will default to 3 (NEW) and cannot easily be changed until all workflows sign offs have been complete.

Prior to entering the New Part Workflow Sign Off data, you should go to the F6-Mfg Info screen and establish if the part will be manufactured or purchased. This info is critical to establishing the workflow. You cannot get to the User Data Sign Off screen (F7) until the Manufacturing/Purchasing criteria is established. In most cases1, you must go to the user data screen, and from there, hit F7 for the Sign Offs. This screen is only available for NEW parts.

Upon initial entry, none of the fields will have any information. Most fields are inquiry only.

Field Description Comments
Hi Pri Is the part a "High Priority" part (null/Y) High priority parts will be flagged as such on emails
China Src2 Is the part sourced from China (null/Y) If "Y", this drives some of the approval sign off logic to Tony (see DSCTBL NEW.PART.CTL F6)
Plant2 What is the plant (or one of the plants) where the part will be manufactured This drives some of the approval sign off logic
Plant Eng2 The plant "engineer" (display only) The plant engineer's name (based on "Plant" vs. WHSMST.USR F39)
Src Mgr3 The Sourcing Manager code This drives some of the approval sign off logic
Pcat3 Purchasing Category This does not drive anything, but by adding this here, we eliminate steps later.
If the part is manufactured, Purchasing fields (Src Mgr & Pcat) are disabled.
If the part is purchased, Manufacturing fields (China Src & Plant) are disabled.

Non-Paving New Parts:

Assuming all the required info has been entered, and the user does the final saving (F2) of the part, they will be prompted as follows:

  1. Choose - Does nothing but force the user to consciously choose one of the other options
  2. Yes - Launches the New Part Workflow Sign Off logic (but does not activate the part)
  3. No - Does not launch the New Part Workflow Sign Off logic (assumes they are not ready yet)
It is perfectly acceptable to choose "No". If there is additional setup that is needed (like BOM3005 (Private Label) or BOM9043 / INV9126 (kit stuff)) before launching the part, there is not a problem. Just remember that the part has not been launched yet.

Paving:

Paving (parts with Major Group in DSCTBL NEW.PART.CTL F40) do not have workflows. These are handled from top to bottom by Jerry Winter (he does not need an email telling himself he just finished a step). Instead, they will get the following message to activate the part:

  1. Choose - Does nothing but force the user to consciously choose one of the other options
  2. Yes - Activate the part - it can now be sold
  3. No - Does not activate the part - can't sell it


1 Major Group 75 (Paving) by-passes all workflows. This is controled by DSCTBL NEW.PART.CTL F40 - other major groups could be added if needed.
2 For manufactured parts only.
3 For purchased parts only.

When the workflows are launched, BOMS9050.2 does all the work to determine what workflows need to be built. Some of the factors involved in this are:

  1. Is the workflow skipped entirely (Major Group in DSCTBL NEW.PART.CTL F40)
  2. Is the part Manufactured or Purchased
  3. Are any of the steps dynamically assigned to a user or table driven to a specific person (like plant engineer)
  4. Is there a 2nd, parallel workflow (Forming or Accessories)
  5. Are there 2 processes within a single workflow that launch together (TDS, SDS, packaging, Labels, etc.) - indicated with a "+" sign - "twins"
  6. Is there a step that uses 1 of 2 process, but not both - indicated with a "/" between 2 process IDs


In addition to building the workflow(s), this sets the Init By, Date & Time. When the workflow is first launched, an email is sent to the 1st person in each workflow.

Workflow 2 - Pseudo-Processes:

There are some steps in workflow 2 that are not actual processes in Avante (SDS & TDS). These pseudo-processes are things that occur outside of Avante. The "Send Tos" people receive the email from Avante just like any other person in the workflow sign off. Unlike running an Avante process, these people do something (build a PDF?) and pass on the needed info to someone (Mary Callahan) who in turn updates one of two specific txt files on the G: drive. There is a background process, BOMS9050.8, that reads these G: drive txt files, looks for the parts needing these pseudo-process sign offs, and if found, signs off that step and advances to the next sign off.

Workflow 2 - "Twin" Processes:

In addition, some of these pseudo-processes can "run" at the same time (called "twins"). This is indicated by the "+" sign at the end of the pseudo-process ID (see the example above). This means that both SDS and TDS are in the queue at the same time. Both must be completed before the workflow moves on to the next step, but within those two, it does not matter which occurs first.

Workflow 2 - 1-of-2 Processes:

For Chemicals, Jerry Winters needs to run either BOM9010 or SOP9166, but not both. This is indicated by 2 processes being separated with a slash ("/") sign. Which process to use is something he must decide and can't really be data/table driven (at least not yet).

Function Keys:

There are 3 unique function keys for this screen & they work as follows:

Key Description Comments
F5 Re-send Current Re-sends the current approval workflow email(s).
This could be used for a number of reasons.
F8 Change Notes If the workflows are ever re-set (see F9), the user must enter a reason as to why or what was changed.
This function simply lets the user manually go to the screen to see/maintain the reason.
F9 Re-set all If a change is ever made to a new part, the use has the option of re-setting all the workflows.
It is up to the user to determine if the change warrants re-setting the workflows.
A trivial change would not need a re-send, but a critical change (Mfg to Purch, differnt SLSCAT, etc.) would.
If the workflows are re-set, the user must enter a reason as to why or what was changed.
When/if a user gets a re-sent approval email, the email will contain the reason why the workflows were re-set.

When someone runs the current sign off process in either workflow for the part in question and saves the data, a new pop-up will ask if they wish to sign off.

BOMS9050.3 (common code to update the workflows & send the next email) has been plugged into all of the filing logic for all the processes that need to be signed off. Specifically, (in most cases), the program which runs after the IIACCEPT has a single line added to call BOMS9050.3.

If there is no process after IIACCEPT, BOMS9050.3 was simply added to run after IIACCEPT. BOMS9050.3 figures out how it was called (usually just by TOPROC), determines the ITMMST key (usually extracted from KEY based on TOPROC), and if the process in question is the next one in the workflow, the prompt is launched. Normally, they will want to choose "Yes" to advance the sign off process. However, they may choose "No" - the intent is they will come back to it soon.

Note that anyone with access to the needed process can sign off on a queued workflow. The "Send To" value is simply to send it to the primary person (again, based on a lot of factors). See the "Proxies" tab.

When a process is signed off (or in the case of "twin" processes, both are signed off), an email is instantly send to the next "send to" person.

When a workflow is complete (or both workflows are complete), and email will go to the initiator. Once all workflows have been completed for the part, the part's status may be changed to 1 (ACTIVE).

The sign off logic never prevents a person from:

  1. Going back into a process after it has been signed off or
  2. Doing s step out of order (though it will not prompt for the sign off)

All of the New Part Workflow Sign Off is controlled by DSCTBL NEW.PART.CTL. All fields are defined in F1 of this control record as well as with MERGE.

There are 2 types of workflows & they each have sub-levels:

  • Workflow 1 (Routing, sourcing, Cost & Pricing)
    • Manufactured
      • MTO
      • SFC/Custom
      • Finished
      • Semi-Finished
    • Purchased
      • Finished
      • SFC/Custom
      • Raw/Pack
  • Workflow 2 (SDS, TDS Catalog Builder, Packing & Labels)
    • Accessory
    • Chemical
    • Other (no 2nd workflow)

Workflow 1 - Manufactured:

These 4 sub-workflows are defined in pairs of fields in DSCTBL NEW.PART.CTL, F11 - F181. Note the Manufactured MTOs (F11 & F12) do not have any sign off at this time.

Workflow 1 - Purchasing:

These 3 sub-workflows are defined in pairs of fields in DSCTBL NEW.PART.CTL, F21 - F261.

Workflow 2 - Chemicals:

New parts determined to be Chemicals use DSCTBL NEW.PART.CTL, F35 & F362.

Note the "+" in the 1st multi-value and the "/" in the 5th multi-value (see Workflow tab for details).

Workflow 2 - Accessories:

New parts determined to be Accessories use DSCTBL NEW.PART.CTL, F37 & F382.


1 The codes in the even fields mean the following:

2 With the exception of INIT (Initiator), each process is tied to a specific User ID. INIT will go to the person who initiated the part.
Each type of code has its own logic used in BOMS9050.1 to build their step of the workflow.

As a part of the New Part Workflow Sign Off, there are several background jobs that run.

Program Run Time Comments
BOMS9050.4 6:00 AM Send email to whoever has a part "stuck" in workflow + initiator.
There is a single email no matter how many parts are "stuck".
BOMS9050.8 06:00 AM - 8:00
Every 10 minutes
Test for parts signed off via "pseudo-processes" (actions taken outside of Avante).
If not LIVE.DATA, it prompts for the part # (we do not want to corrupt the live txt file).
SYSS9048.2 05:00 AM Assign/unassign scheduled proxies.
See "Proxies" tab.

The New Part Workflow Sign Off has a simple proxy system that is used to send emails to a "sign off" person's designated proxy. Anyone who is connected to the sign off process can assign a proxy (for themselves or someone else). If a proxy is established, then when an email is sent to the needed "sign off" person, it will also go to that person's proxy. This is intended to be used to cover a person who is on vacation or some other absence from work.

Proxies can be established on of two ways:

  1. Manually via SYS9148 (Proxy Maint) or
  2. SYS9040 PROXIES (Schedule PROXIES Maint)


SYS9148 (Proxy Maint):

This very simple screen simply assigns a proxy to another user. There are some rules to ensure things don't go crazy.

  1. A person can't be their own proxy (duh!)
  2. The proxy can't have a proxy (can only go 1 level deep)
This process should be used to add and remove proxies on an as-needed basis. It should be done just prior to the user being unavailable. However, people forget - that's why we have the background job BOMS9050.4 to identify stuck processes. If a "sign off" person is found to be "out", someone can simply run this process, assign and assign a proxy. At this point the options are:
  1. Wait for BOMS9050.4 to run again (bad idea if we need the part quickly) or
  2. Run BOM3000, User Data, Sign Off and Re-send Current
When the "absent" person returns, simply delete their proxy data.


SYS9040 PROXIES (Schedule PROXIES Maint):

This process is used to schedule a weekly, re-occurring proxy. In the example, MCCLINBA will automatically be set as TOOTHAJ's proxy every Friday.

Valid entries for "Days" is any combination of the 1st 2-letter of the days of the week, separated by a space or comma.

Early each morning, the background job SYSS9048.2 runs. It loops through the data in SYSTBL PROXIES. For each child record:

  1. If today's day of the week matches a value in "days", it will write a PROXIES record.
  2. If today's day of the week does not match a value in "days", it will delete the PROXIES record.