KBA-01153: Overview of the ProjectConfig Rules

Overview:

The ProjectConfig rules specify options and characteristics for projects.

The ProjectConfig rule group is found in the Rules Maintenance tool on the System Admin Dashboard. Each rule in the group consists of a rule name, a filter value (which can be blank) and a result value.


Filter Value:

Any SubType  code

The ProjectConfig rules accept SubType codes (as defined in the Code Maintenance tool) as the filter value, except where noted below.


Result Value:

Varies

Result values for the ProjectConfig rules depend on the rule and are indicated within the description of each rule. Some rules are enabled and disabled through a checkbox in the result value, for example:

checkbox result value


Rules:

AccountingTypeFrom

Specifies (in the result value) the code set (as established in the Code Maintenance tool) to be used as the filter by several accounting-centric rules. For backward compatibility, the default is Subtype. We recommend ContractType for new implementations. The accounting-centric rules (described below) are AllocationMethod, AllocationRateTable, BillingApprover, BillingCopies, InvoiceFormat, BillingRule, BillingType, GLSubaccount, LaborAccount, LaborRateTable, and RevenueRecognition.

  • ContractType = use the ContractType codes
  • Subtype = use the Subtype codes (default)

AllocationMethod

Specifies (in the result value) the default for the accounting allocation method (e.g., PJPROJ.Alloc_Method_Cd in Microsoft Dynamics SL). The result value accepts an allocation method code from the accounting system. The code set to be used as the filter value depends on the AccountingTypeFrom rule (above).

  • NA = disable this rule.

AllocationRateTable

Specifies (in the result value) the default for the accounting allocation rate table (e.g., PJPROJ.Rate_Table_ID in Microsoft Dynamics SL). The result value accepts an allocation rate table ID. The code set to be used as the filter value depends on the AccountingTypeFrom rule (above).

AllowNoCustomer

Specifies (in the result value checkbox) whether a project (Project Setup document) can be created without a customer.

  • unchecked = No (default).
  • checked = Yes.

AllowNoItems

Specifies (in the result value checkbox) whether a project (Project Setup document) can be created without any Items.

  • unchecked = No (default).
  • checked = Yes.

BidBudget

Specifies (in the result value checkbox) whether a budget document should be created for the Bid document on the project.

  • unchecked = No (default).
  • checked = Yes.

BillingApprover

Specifies (in the result value) the default for the accounting billing approver (e.g., PJBILL.approver in Microsoft Dynamics SL). The result value accepts a project employee ID. The code set to be used as the filter value depends on the AccountingTypeFrom rule (above).

BillingCopies

Specifies (in the result value) the default for the accounting billing copies (e.g., PJBILL.Copy_Num in Microsoft Dynamcis SL). The result value accepts a number. The internal default is 2. The code set to be used as the filter value depends on the AccountingTypeFrom rule (above).

BillingRule

Specifies (in the result value) the default for the accounting billing rule (e.g., PJBILL.Bill_Type_Cd in Microsoft Dynamics SL). The result value accepts an accounting billing rule code. The code set to be used as the filter value depends on the AccountingTypeFrom rule (above).

BillingType

Specifies (in the result value) the default for the accounting billing type (e.g., PJBILL.pb_id20 in Microsoft Dynamics SL). The result value accepts an accounting billing code. The code set to be used as the filter value depends on the AccountingTypeFrom rule (above).

BTMapFrom

Specifies (in the result value) the field that should be used for advanced mapping the ProjectTeam rules (see KBA-01536). Use the BTMapLen and BTMapStart rules (below) to extract data for this advanced mapping value.

  • CUSTOMERID = use Customer IDs.
  • DIVISIONID = use Company Division IDs.
  • PROJECT = use Project IDs.

BTMapLen

Specifies (in the result value) the number of characters to extract from the BTMapFrom result value.

BTMapStart

Specifies (in the result value) the starting position in the BTMapFrom result value. This rule must be specified in order for Project Team mapping to work properly.

  • 1 = start at the first character.
  • 2 = start at the second character.
  • 3 = start at the third character, etc.

BuildTeam

Specifies (in the result value) the Contacts that should be added to the project team. The result value provides the list of Contacts, each value separated by a semicolon (for example: User;Primary;To). The default is User;Primary;Responsible;To;From.  In each case, the corresponding Contact’s default responsibility is used on the team. (See also KBA-01536.) The possible list of Contacts is as follows:

  • Approver = add the Contact down as the Owner Approver.
  • CSContact = [V2020+] the custom Contact 
  • From = add the Contact on the From address.
  • Primary = add the primary customer (source) contact.
  • Responsible = add the responsible party.
  • To = add the Contact on the To address.
  • User = add the current user saving the document.

COContractLine

Specifies (in the result value) the Project Setup line description to which Change Items should link. The default is Approved Changes. (See also KBA-01308.)

CommitmentBudgeting

Specifies (in the result value) the control value of xsfProject.SCBudgetMode and the default project CommitmentBudgeting mode. This mode can be reviewed and changed on the Project Setup’s Project tab through the the Commitment Budgeting Mode field. (See also the BudgetConfig | InitialTargets and UpdateTargets rules in KBA-01176 and see KBA-01397 for an explanation of Automatic Budget Revisions for Commitments and CCOs).

  • A = start the project out in Initial mode and automatically advance to Update mode when the first CO is created.
  • I = place the project in Initial Commitment Budgeting mode.
  • N = turn off CommitmentBudgeting.
  • U = place the project in Update CommitmentBudgeting mode.

ContractCostCode

Specifies (in the result value) the first cost code for the work-breakdown-structure. The result value takes the format cost code;description. For integrated sites, the result value also becomes the first entry for PJPENT. The new cost code receives the Contract Value when the Project Setup is “committed”.

ContractType

Specifies (in the result value) the default for PJPROJ.contract_type. The result value accepts a Microsoft Dynamics SL contract type code. The default is to use the Spitfire SubType code as the Dynamics contract type code, for example: FP in Spitfire maps to contract type code FP in Microsoft Dynamics SL. You can map multiple Spitfire SubType codes to a single Dynamics contract type code. This rule is used only if the Project Setup Document ContractType field is blank, ? or NA and the result is stored into Contract Type.

DashboardTitle

Specifies (in the result value) the text for the Project Dashboard title bar. The default is {0} – {1} ({2}) as described below, for example, GC-003 – Main Project (In Process). [V2019+] bookmarks substitutions can be included using the ProjectDetail alias, such as {0} – {1} [ProjectDetail_ProjectCitySZ] or [ProjectDetail_ProjectSpecification]

Text can include:

  • {0} to be replaced by the masked Project ID;
  • {1} to be replaced by project name/title;
  • {2} to be replaced by project status;
  • {3} to be replaced by the project customer ID;
  • {4} to be replaced by the project customer company name.

Your bookmarks can use xsfProject fields and data from Project Setup.  Bookmark prefixes can be included when appropriate.

DashboardTitle:status

Specifies (in the result value) the text for the Project Dashboard title bar for projects of the specified status. status can be any DocStatus code for Project Setup documents (as defined in the Code Maintenance tool). Text can include the replacement markers listed above. This rule overrides the DashboardTitle rule. The default is {0} – {2}, for example, GC-003 – Main Project.

DataOnly

Specifies (in the result value) whether the project will include financial data.  When checked, the KPI and Cost Analysis parts will not appear on the Project Dashboard, even to those who have permission to view these parts.

  • unchecked = No (default).
  • checked = Yes.

DefaultClosedParts

[V2017+] Specifies (in the result value) the semicolon-separated list of parts that should default closed for all users that have not already established preferences. See ExcludedParts below for a list of part names. The default is ProjectCA;ProjectKPI;DocSearch.

ExcludedParts:type

Specifies (in the result value) the semicolon-separated list of parts that should be excluded from the dashboard for all users for projects of the indicated type. type can be D (for Data), E (for Equipment) or P (for Standard).   Parts named here are not available on the Project Dashboard tool menu.

  • ProjectCA = exclude the Cost Analysis part.
  • ProjectKPI = exclude the Key Performance Indicators part.
  • ProjLinks – exclude the Linked Projects part
  • ProjNote = exclude the Remarks part.
  • ProjPhoto = exclude the Photo part.
  • ProjTeam = exclude the Team Contacts part.
  • ProjWeather = exclude the Conditions part.
  • DocSearch = exclude the files part

GLSAMapBFrom

Specifies (in the result value) the source of the secondary mapping of the GL Subaccount for a given project subtype. This rule is ignored if the GLSAMapFrom rule (below) is blank. Use the GLSAMapBLen and GLSAMapBStart rules (below) to extract data for this secondary mapping value. (See KBA-01302 for an example of GL Subaccount mapping.)

  • COMPANYID = use Company ID.
  • CUSTOMERID = use Customer ID.
  • PROJECT = use the Project.

GLSAMapBLen

Specifies (in the result value) the number of characters in the GLSAMapBFrom result value to be used in mapping the GL Subaccount. The result value can be any number.

GLSAMapBRaw

Specifies (in the result value checkbox) whether the extracted secondary mapping value should be used as the GL Subaccount.

  • unchecked = No, use the GLSAMapping entry to continue the mapping (default).
  • checked = Yes.

GLSAMapBStart

Specifies (in the result value) the starting position in the GLSAMapBFrom result value (below). The result value can be any number.

  • 1 = use the first character.
  • 2 = use the second character.
  • 3 = use the third character, etc.

GLSAMapFrom

Specifies (in the result value) the field that should be used for advanced mapping of the GL Subaccount for a given project subtype. Use the GLSAMapLen and GLSAMapStart rules (below) to extract data for this advanced mapping value.

  • COMPANYID = use Company ID.
  • CUSTOMERID = use Customer ID.
  • PROJECT = use the Project ID.

GLSAMapLen

Specifies (in the result value) the number of characters in the GLSAMapFrom result value to be used in mapping the GL Subaccount. The result value can be any number.

GLSAMapping

Specifies (in the result value) the new GL Subaccount. The result value accepts any combination of letters and numbers. The default is the general GL Subaccount. The filter value must be whatever part of the Company ID, Customer ID or Project ID that sfPMS will extract using the GLSAMapFrom, GLSAMapLen and GLSAMapStart rules. (See KBA-01302 for an example.) Note: this rule is ignored if the GLSAMapRaw (below) is checked.

GLSAMapRaw

Specifies (in the result value checkbox) whether the extracted mapping value should be used as the GL Subaccount.

  • unchecked = No, use the GLSAMapping entry to continue the mapping.
  • checked = Yes.

GLSAMapStart

Specifies (in the result value) the starting position in the GLSAMapFrom value. The result value can be any number. This rule must be specified in order for mapping of the GL Subaccount to work correctly.

  • 1 = use the first character.
  • 2 = use the second character.
  • 3 = use the third character, etc.

GLSubaccount

Specifies (in the result value) the default for the accounting GL Subaccount (e.g., PJPROJ.GL_SubAct in Microsoft Dynamics SL). The result value accepts any GL Subaccount number to be used for the Project. The code set to be used as the filter value depends on the AccountingTypeFrom rule (above).

InferValueFromBudget

Specifies (in the result value checkbox) whether sfPMS should look for a revenue amount in the project budget (from BFA) and, if a revenue amount exists in the budget but no Items have yet been added to the Project Setup, use the budget revenue as the default contract value on the first Item of the Project Setup. The default is yes: you will see “automatically added item with amount” when the revenue is detected and copied.

  • unchecked = No (never automatically copy revenue into the Project Setup).
  • checked = Yes. (default; see also ManualRevenue below, which likely should be checked)

InvoiceFormat

Specifies (in the result value) the default for the accounting invoice format (e.g. PJBILL.inv_format_cd in Microsoft Dynamics SL). The result value accepts an invoice format code. The code set to be used as the filter value depends on the AccountingTypeFrom rule (above).

InvoiceTextMap

Specifies (in the result value) which Project Setup note to copy to PJINVTXT.Text_Type = ‘P’ in Microsoft Dynamics SL.

  • Note = copy the first note field from the document’s Notes/Scope tab.
  • NoteA = copy the second note field from the document’s Notes/Scope tab.
  • NoteB = copy the third note field from the document’s Notes/Scope tab.

JSIncludesDocList

Specified (in the result value) the JavaScript resource(s) that should be included—and applied to the Project Document List part—when the Project Dashboard is rendered. If no slash ( / ) is included in the result value, the /cscript/ folder is assumed. If the path starts with */, the zPublicHTML/js folder in the catalog is used and a .js extension is automatically added. You can use jQuery in your JavaScript.

JSIncludesTeam

Specified (in the result value) the JavaScript resource(s) that should be included—and applied to the Team Contacts part—when the project dashboard is rendered. If no slash ( / ) is included in the result value, the /cscript/ folder is assumed. If the path starts with */, the zPublicHTML/js folder in the catalog is used and a .js extension is automatically added. You can use jQuery in your JavaScript.

LaborAccount

Specifies (in the result value) the default value for the accounting labor account (e.g., PJPROJ.labor_gl_acct in Microsoft Dynamics SL). The result value accepts a labor GL account number. The code set to be used as the filter value depends on the AccountingTypeFrom rule (above).

LaborRateTable

Specifies (in the result value) the default for the accounting labor rate table (e.g., PJPROJEX.rate_table_labor in Microsoft Dynamics SL).  The result value accepts a Microsoft Dynamics SL labor rate table ID. The code set to be used as the filter value depends on the AccountingTypeFrom rule (above).

LimitSearchByPrefix:match 

[V2020+] Specifies (in the result value) the additional filter to limit the search for the next sequential project number.  For example, to ignore manually created projects beyond EN900, specify LimitSearchByPrefix:EN = Project < ‘EN900’

ManualBudget

Specifies (in the result value checkbox) whether sfPMS should prevent the Initial Budget document from being automatically created when the Project Setup document is first saved.  This rule does not apply if the project was created in Dynamics SL and is later added to sfPMS.

  • unchecked = No (default).
  • checked = Yes.

ManualCIRegister

[V2020+] Specifies (in the result value checkbox) whether sfPMS should create an empty Change Item (CI) Register only after a user adds a Change Item to a Change Order or Proposed Change Order. If the intention is to have users add Change Items directly to the register, this rule should be unchecked.

  • unchecked = No, create an empty Change Item Register automatically when the Project Setup is first saved.
  • checked = Yes (default)

ManualProjectInfo

Specifies (in the result value checkbox) whether sfPMS should prevent the extended Project Information document from being automatically created when the Project Setup document is first saved.

  • unchecked = No (default).
  • checked = Yes.

ManualRevenue

Specifies (in the result value checkbox) whether sfPMS should not post revenue to the Budget targets when posting Contract Value. This setting has no effect if the ManualValue rule (below) is checked.

  • unchecked = Post Contract Value and Revenue as the same amount (default prior to v2018).  Use when flowing revenue amount from Project Setup into budget.
  • checked = Post Contract Value without changing revenue (default v2018). Use when flowing revenue amount from budget into Project Setup.

ManualSubmittalRegister

Specifies (in the result value checkbox) whether sfPMS should prevent the empty Submittal Register from being created when the Project Setup document is first saved.

  • unchecked = No (default).
  • checked = Yes.

ManualValue

Specifies (in the result value checkbox) whether sfPMS should prevent the contract value from being posted.

  • unchecked = Automatically posts to Budget when Project Setup is committed (default).
  • checked = Nothing posts to the Budget.

ModuleStatus

Specifies (in the result value) the external module status in PJPROJ in Microsoft Dynamics SL.

  • A = use the Active module.
  • I = use the Inactive module (default).

OwnerDirectCommitments

Specifies (in the result value checkbox) whether Commitments should default to Owner Direct. (Owner Direct is a checkbox on the Commitment’s Detail tab.)

KBA01153_02

  • unchecked = No (default).
  • checked = Yes.

PAStatusByCustomer

Specifies (in the result value) the project accounting status in PJPROJ for certain customers in Microsoft Dynamics SL. The result value accepts any code listed for the PAStatusMap rule (below). By default, the project accounting status remains the status as determined by the PAStatusReject rule (below). This rule uses the customer status (as defined in Microsoft Dynamics SL’s customer record) as the filter value. (See also the CustomerBlock rule in KBA-01192.)

PAStatusMap

Specifies (in the result value) the project accounting status in PJPROJ in Microsoft Dynamics SL. This rule uses the DocStatus code (as defined in the Code Maintenance tool) as the filter value. (See also KBA-01317.)

  • A = set the project accounting status to Active (default).
  • D = set the project accounting status to Delete.
  • I = set the project accounting status to Inactive.
  • M = set the project accounting status to Plan.
  • P = set the project accounting status to Purge.
  • T = set the project accounting status to Terminate.
  • NA = leave the Microsoft Dynamics SL value in PJPROJ.status.pa unchanged.

PAStatusReject

Specifies (in the result value) the project accounting status in PJPROJ for certain customer reject codes in Microsoft Dynamics SL. The result value accepts any code listed for the PAStatusMap rule (above). By default, the project accounting status remains the status as determined by the PAStatusMap rule (above). This rule uses the customer reject code (as defined in Microsoft Dynamics SL’s customer record) as the filter value. (See also the CustomerBlock rule in KBA-01192.)

ProjectLocked

Projects with an ID that is LIKE the filter value are immune to project ID changes from project renumbering or document migration.  The result value must be 1.  For example, a filter value of 17%  would make all projects starting 17 immune from project ID changes.  Likewise, a filter value of %999 would cover all projects ending with 999.  If any LIKE match covers, the project is locked. There is no way to unlock specific exception projects.

ProjectNoteMap

Specifies (in the result value) the Project Setup note to be copied to PJPROJ/SNOTE in Microsoft Dynamics SL.

  • Note = copy the first note field from the document’s Notes/Scope tab.
  • NoteA = copy the second note field from the document’s Notes/Scope tab.
  • NoteB = copy the third note field from the document’s Notes/Scope tab.

ProjectType

Specifies (in the result value) the Project Type for the specified SubType filter value.

  • D = Data.
  • E = Equipment.
  • P = Standard Project (default).

RevenueRecognition

Specifies (in the result value) the default for the accounting revenue recognition type (e.g., PJPROJEX.rev_type in Microsoft Dynamics SL). The result value accepts a revenue recognition code or you can leave the result value empty. The code set to be used as the filter value depends on the AccountingTypeFrom rule (above).

SpitfireOnly

Specifies (in the result value) whether the project should be created only in sfPMS (and not in Microsoft Dynamics SL) Many of the ProjectConfig rules are meaningless for Spitfire-only projects.

  • unchecked = No (default).
  • checked = Yes.

SubmittalLeadDays

Specifies (in the result value) the default Lead Days (Duration) for new Submittal Registers. This value is then used by the Submittal Item Log report. This rule applies only when the ManualSubmittalRegister rule (above) is not checked and the Submittal Register Doc type is site-active during project creation. The default is 0.

TabText

[V2017+] Specifies (in the result value) the text for the Project Dashboard tab. The default is {0} as described below, for example, GC-003. Text can include:

  • {0} to be replaced by the masked Project ID;
  • {1} to be replaced by project name/title;
  • {2} to be replaced by project status;
  • {3} to be replaced by the project customer ID
  • {4} to be replaced by the project customer company name

TabTip

[V2017+] Specifies (in the result value) the tip text for the Project Dashboard tab. The default is {1} as described below, for example, Main Project. Text can include:

  • {0} to be replaced by the masked Project ID;
  • {1} to be replaced by project name/title;
  • {2} to be replaced by project status;
  • {3} to be replaced by the project customer ID
  • {4} to be replaced by the project customer company name

TrackCODays [v2020]

Specifies (in the result value) whether the project current finish date should be incremented by the value of Days Approved when an Owner Change Order is approved.

  • unchecked = No (default).
  • checked = Yes.

UtilizationType

Specifies (in the result value) the default for PJPROJ.pm_id37. The result value accepts a Microsoft Dynamics SL utilization type code.

ValueCheck

Specifies (in the result value) whether and how the contract value should be checked against the budget in order for the Project Setup document to be saved. This rule applies to integrated sites where the project budget has been pre-established in Microsoft Dynamics SL.

  • Exact = the Spitfire contract value must be equal to the DSL budget in order for the Project Setup to be saved.
  • GE = the Spitfire contract value must be greater than or equal to the DSL budget in order for the Project Setup to be saved.
  • None = the Spitfire contract value is not checked against the DSL budget (default).

Additional Comments:

You can specify an empty filter (no Contract Type) to create a rule that applies to all projects. Spitfire provides no defaults for many of these rules. The processing hierarchy for the PA status does not start unless the customer is not blocked. Then the Microsoft Dynamics SL project status is determined by examining the Spitfire contract status, the Spitfire Customer Reject code and finally the Spitfire Customer document status.


KBA-01153; Last updated: September 14, 2021 at 13:42 pm; green text = new
Keywords:  project; billing; defaults; project config; rules