You are currently reviewing an older revision of this page.
The Check For Expiring Contracts scheduled action is sending notification emails, and/or creating bookmarks, for contracts that should be expired, or the exiration date is within the preset notifcation window.
However:
When a conract is updated by the Check For Expiring Contracts scheduled action, either to have its Notified property set, or the status set to Expired, the contract may fail on an attempt to persist the contract to the database.
A primary reason for a persist failure can be due to the contract's assinged buyer (e.g., the Employee object) not having it's Buyer role set. In this case, were you to expire a contract via the user interface, you would recieve the following message:
Contract xxxxxxxxx could not be persisted. Buyer-> xxxxxxxxx is not a buyer. Only buyers may be identified as the contract's buyer.
Contract xxxxxxxxx could not be persisted.
Buyer-> xxxxxxxxx is not a buyer. Only buyers may be identified as the contract's buyer.
The server log file may also have a message similar to the following:
Ivara.OTAssert [12] File: Iref.cpp(736) : Failed Assert: oIndirectRef::setState(..) - setting pers state to UNLOCKED on an object that is still modified ( Class Contract CID:1000003324 OID:845 )Modified caxes:CID:1304 OID:1000047661 "ExpiredOn" data: "2017-07-24"CID:1304 OID:1000047649 "Status" data: "Expired"
To fix this problem, open the buyer's Employee object. On the Properties view, Roles tab, and Materials sub-tab, set the Buyer property (in the Purchasing group box).
Alternatively, if the employee is no longer active, set the buyer to a valid employee with the Buyer role.
N/A.