“Could not update Project Estimate record. Project can not be empty. Pick a valid Project ID” error while updating the IsPrimary column of the PjEstimate table in Sage Intacct.

  • 23 October 2023
  • 0 replies
  • 5 views

Badge

When trying to update the IsPrimary column of the PjEstimate (a.k.a Project Estimate) table, you will probably face the following error: 

 

 

“Could not update Project Estimate record. Project can not be empty. Pick a valid Project ID” 

Or 

“Could not update Job Estimate record. Job can not be empty. Pick a valid Job ID” 

As ProjectID=JobID . 

Before providing the solution, I would like to explain a few concepts. Let’s start with understanding what is an entity. Entity is a type of location (a dimension) that is available in multi-entity shared companies only. Entities in Sage Intacct represent divisions, franchises, branches, partnerships, locations, and self-balancing funds which are single-handedly controlled by an entity using centralized Payables, Receivables, and a standard chart of accounts. The centralized entity has the term “Top Level” in Sage Intacct where a user can access all the entities (check out this article for more information). It’s important to note that one Entity-Level Project Estimate cannot be updated from the Top-Level. 

Therefore, to avoid triggering the same error, when updating the IsPrimary field of the PjEstimate table, we must provide an Id representing the Entity to which the Project Estimate relates. Note that as far as we have seen, this is only required when updating the IsPrimary column. However, updating the Description column, for instance, does not require this input. 

To locate the entity associated with the estimate, you can execute a query against the PjEstimate table and retrieve this information from the MegaEntityName, MegaEntityId, and MegaEntityKey columns: 

 

 

 

How to provide the entity id, when updating this table from the driver? You should configure the LocationsId or ClientID connection properties. In my case, I have set the LocationsId property to the value of the MegaEntityId column: 

 

 
 
Note that the ClientId and LocationsId values must belong to the estimate you are trying to update, otherwise it will throw the same error message “Could not update Project Estimate record. Project can not be empty. Pick a valid Project ID”. 

 

The driver’s documentation clearly indicates that the LocationsId and ClientId properties have distinct representations. That said, configure only one of them according to the type of child company (Entity) you are trying to configure (I have used the LocationsID since I updated the estimate of a shared child company): 

 

 

 

 

Project Estimate Table 

Name 

Type 

ReadOnly 

Description 

Recordno [KEY] 

Long 

True 

Record number 

PjestimateId 

String 

False 

Estimate ID 

Isprimary 

Bool 

False 

Primary 

Megaentitykey 

Long 

True 

No description specified 

Megaentityid 

String 

True 

No description specified 

Locationkey 

Long 

True 

Location Key 

Locationid 

String 

True 

Location 

Locationname 

String 

True 

Location Name  

Projectid 

String 

False 

Project Id 

Projectname 

String 

True 

Project Name 

 

Please reach out to support@cdata.com if you run into any issues. 


This topic has been closed for comments