Easy To Miss
In the supplier standard form contract, the assignment clause (or, rather, non-assignment clause) typically sits quietly at the end of the agreement, seemingly harmless, stating (to the few who bother to read it) that the customer may not assign the agreement without the consent of the supplier.
Many business people fail to understand the implications of this clause. That is, until two or so years later, when the customer decides to reorganize its business and sell half of it to a third-party purchaser. Then the lawyers will be all over the assignment clause, and the big cost of ignoring this key provision at the time the contract was signed finally comes to light, because the non-assignment clause prevents the contract from being moved to another entity, as called for by the reorganization. Of course the customer can always ask the supplier to amend the contract, but this tends to result in additional fees being required by the supplier — whereas these likely would have been avoided had the proper assignment clause been negotiated when the deal was originally entered into.
Reasonable Flexibility is Key
The fundamental lesson from the above example is that in this day and age, where corporate reorganizations and mergers, acquisitions and divestitures occur with great frequency, an assignment clause that simply prohibits the customer from any transfer of the agreement is clearly inappropriate. Some degree of flexibility is critical, from the perspective of the customer.
The important question is "How much flexibility?" Is it reasonable for a customer to demand total discretion, as would be the case if the contract simply provided that the customer could transfer the agreement to any third party without the consent of the supplier? Virtually all suppliers will push back hard on such a proposition, as it would give rise to a secondary market in the software or services that are the subject of the contract. There are, however, certain narrow assignment scenarios that are very important to the customer but are typically not that problematic for the supplier (at least not when negotiated as part of the initial contract; when asked for by the customer later, the same flexibility from the supplier usually comes with a hefty fee to be paid by the customer).
One of these is the transfer of the agreement to an affiliate of the customer. The reason for such a transfer is typically driven by some form of reorganization of the corporate group to which the customer belongs. It might be, for example, that all IT agreements of a certain kind, worldwide, are being consolidated into a single, centralized entity.
Whatever the reason, most suppliers will not have a big issue approving, in advance (i.e., when the agreement is signed) such a possible future assignment by the customer. So, don’t forget to reflect it in your revised version of the contract.
Sale of Business Exception
By far the most important exception to the "no assignment" default position of the supplier that a customer needs to address, however, is the scenario where the customer sells its business. At that point, it is usually critical that the outsourcing or other material commercial arrangement be transferable to the purchaser.
This is usually not a problem if the sale is being effected by a transfer of the shares of the customer. A non-assignment clause in a contract would not typically be triggered by a sale of shares, unless the contract specifically stated that such a change in control would be deemed to be an assignment (but this is done quite rarely).
The issue (for the customer) invariably arises when there is a transfer of the business by a sale of assets. In that case, the tech commercial agreement would be one such asset, and so the modified assignment clause ideally would allow a customer to assign the agreement (without supplier’s consent) to a purchaser of the customer’s business.
In this regard, the supplier may want to restrict the scope of this permission to those situations where the purchaser is buying "all or substantially all" the customer’s assets. Be careful with such a narrowing. It essentially limits the permission to entire sales of your company. But it might be you’re splitting your business into several businesses. In that case, a better formulation would be to allow the assignment to anyone who acquires the business unit(s) that uses the technology related to the contract at issue.
In short, it is very important that customers review the boilerplate (non)assignment clause, and then revise it to provide the customer with important flexibility as invariably will be required by the customer in the course of the next few years.
Novation vs. Assignment
As a customer, you need to consider one more important assignment-related issue. In most assignment situations, the assignor is not relieved of liability under the contract; rather, for this to happen, what the customer requires is a full novation (such that the supplier agrees the assignor has no ongoing liabilities under the contract after the transfer of it). While this is preferable to the assignor, it presents some real risks to the supplier, including as to the creditworthiness of the assignee.
It is therefore not unusual to provide, in this part of a beefed-up assignment clause, that the novation is conditional upon the assignee having a certain credit rating (typically somewhat commensurate with that of the assignor). This is not an unreasonable ask from the supplier, as its core concern under the contract is to get paid.
Supplier’s Assignment Rights
To this point, we have focused only on the customer’s assignment clause requirements. What about the supplier’s reasonable needs?
Suppliers typically want full flexibility, and so, in their standard form agreements usually they simply don’t say anything to restrict their assignment rights (silence on this point tends to mean the supplier can assign the agreement without the need for customer consent). Or, if addressed in the supplier’s standard form contract, the right of supplier assignment will be made subject to obtaining customer consent, but it is also provided that such consent may not be unreasonably withheld by the customer.
Narrowing Supplier Discretion
In many cases (and in most cases involving sophisticated, big-ticket deals), the customer will want to restrain supplier discretion more than what is contemplated by the "not to be unreasonably withheld" standard. Bottom line: the customer has spent long hours in the RFP process, and in subsequent negotiations, determining that this particular supplier is the one that best suits the customer’s needs. Therefore, from the customer’s perspective, the supplier should not be permitted, as a matter of right, to hand off the work to an entity that the customer does not know (or worse, that the customer refused to do business with as part of the same RFP process).
What this analysis leads most customers to conclude is that the supplier should only be able to assign the agreement to an entity that acquires the supplier’s entire business (on the assumption that the core business that had been providing services to the customer previously will then continue to keep so operating, but under new ownership). There is, then, some symmetry between this exception to the general no-assignment rule, and the same sort of exception required by the customer and noted above. In both cases, some flexibility is introduced into the contract, but not so much as to make the parties nervous about the future of their respective counterparties.
Carving Out Revenue Streams
The one exception to the foregoing is where the supplier wants to assign the revenue stream it receives from the customer under the contract. A supplier would do this as part of a fairly typical financing plan of the supplier’s business, and for the most part, this arrangement should not present the customer with a problem.
It should be made clear in the contract, however, that notwithstanding such assignment of the payments, the customer will continue to interface only with the supplier, and that if there are any issues arising out of the contract, they will be dealt with only by the supplier (and not the assignee of the revenue stream). Thus, contractual comfort must be given to the customer that such an assignment of the fees paid or payable under the contract will have no adverse impact on the customer. For example, the language should stipulate that if the payments are assigned (or the right to receive the payments are assigned) to an entity resident outside of Canada, then the supplier will indemnify the customer from any related withholding taxes that the customer may now have to pay as a result of the assignment of the payment stream to a company not resident in Canada.
When you enter expenditure items, you charge hours, expenses, or the use of non-labor resources to a project and a task. Oracle Projects validates expenditure items against predefined criteria and any transaction controls and transaction control client extensions that you set up during the implementation of Oracle Projects.
The standard validation process performs the following checks:
- Expenditure item falls within project dates
- Project status allows transactions
- Transaction controls and transaction control extensions allow charges of this type
- Project allows cross-charges from the user's operating unit in a multi-organization environment
- Expenditure item falls within task dates
- Transaction controls and transaction control extensions allow charges of this type
- Expenditure type is active
- Existing expenditure item (for adjustments only)
- Matching expenditure item exists (unless you enter an unmatched, negative transaction)
Oracle Projects validates pre-approved expenditure batches as you enter expenditure item details. Expenditures created using Oracle Personal Time and Expense and external cost collection systems are validated during the Submit and Transaction Import processes, but before Oracle Projects creates an expenditure.
|Rejection Reason (Error Lookup Code)||Troubleshooting Tips||Expenditure (timecards, expense reports, usage logs, etc.)|
|You may receive the following rejection reasons when you use Transaction Import to import an expenditure.|
|Burdened cost is not valid for the given system linkage (INVALID_BURDENED_AMOUNT)||A transaction with an expenditure type class of Burden Transactions should have a burden cost of NULL. For other expenditure type classes, if the transaction source or project does not allow burdening, then they burden cost should equal zero.||all|
|CCID for credit is NULL (INVALID_CR_CCID)||The code combination ID for the credit account cannot be NULL for transactions that have already been accounted for in an external system.||GL accounted transactions|
|CCID for debit is NULL (INVALID_DR_CCID)||The code combination ID for the debit account cannot be NULL for transactions that have already been accounted for in an external system.||GL accounted transactions|
|Cannot lock original item for reversal |
|Another user or a process is currently accessing the original item to be adjusted. Try to revise the expenditure item later.||all|
|Cross charge validation failed|
|You will get this message only if you have implemented multiple organization support and are using Transaction Import to charge expenditure items to a project owned by an operating unit that does not share your operating unit's set of books, PA period type, and business group. Revise the expenditure item by entering a project owned by an operating unit to which you can charge.||all|
|Different system linkage (DIFF_SYS_LINKAGE)||During Transaction Import, Oracle Projects verifies that the expenditure type class of the transaction matches the expenditure type class of the expenditure type. You can either associate the expenditure type class with the expenditure type using the Expenditure Types window, or you can change either the expenditure type or the expenditure type class on the transaction so they form a valid combination.||all|
|Duplicate item (DUPLICATE_ITEM)||An expenditure item with the same transaction source and original system reference already exists. Change the transaction source or original system reference of the expenditure item to be imported.||all|
|Employee is mandatory|
|Enter information into the employee number field (automatically entered in Oracle Personal Time and Expense).||timecards and expense reports|
|Employee or organization is mandatory|
|Enter either the employee name and number or expenditure organization in the appropriate expenditure field.||all except for timecards and expense reports|
|Expenditure item date is after the expenditure ending date |
|The expenditure item date is after the expenditure ending date. Verify that both the expenditure item and the expenditure dates are correct and change, if necessary.||all|
|Expenditure item date is not within the expenditure week (ITEM_NOT_IN_WEEK)||Verify that the expenditure item date and the expenditure date are both correct and change, if necessary. You can also create a new expenditure for the expenditure item.||timecards|
|Expenditure organization is not active (PA_EXP_ORG_NOT_ ACTIVE)||The expenditure organization is not active or is not within the current expenditure organization hierarchy.||all|
|Expenditure type/expenditure type class inactive (ETYPE_SLINK_ INACTIVE)||The combination of the expenditure type and expenditure type class is inactive as of the expenditure item date. Refer to PA_EXPEND_TYP_SYS_LINKS for valid expenditure type/expenditure type class combinations.||all|
|Expenditure type inactive (EXP_TYPE_INACTIVE)||The expenditure type has been defined, but it is either not yet effective or has already expired as of the expenditure item date. Refer to the Expenditure Types window to view all valid expenditure types and their effective dates or to change the expenditure type's effective dates.||all|
|GL date is NULL (INVALID_GL_DATE)||A transaction that has already been accounted for in an external system must have a GL date.||GL accounted transactions|
|Invalid burden transaction (INVALID_BURDEN_ TRANS)||Raw cost and quantity must equal zero or NULL for burden transactions.||burden transactions|
|Invalid employee (INVALID_EMPLOYEE)||Oracle Projects does not recognize the employee number. Verify that you have entered the information correctly or add a new employee.||all|
|Invalid ending date (INVALID_END_DATE)||The expenditure ending date does not fall on the day of the week defined as your expenditure cycle end day. Refer to the Implementation Options window (Costing) for the valid expenditure cycle start day.||all|
|Invalid expenditure type (INVALID_EXP_TYPE)||The expenditure type does not exist. Refer to the Expenditure Types window for a list of all valid expenditure types or to create a new expenditure type.||all|
|Invalid expenditure type class (INVALID_EXP_TYPE_CLASS)||The expenditure type class of the transaction is invalid. Refer to PA_SYSTEM_LINKAGES for valid expenditure type classes.||all|
|Invalid expenditure type/system linkage combination (INVALID_ETYPE_ SLINK)||The combination of the expenditure type and expenditure type class is invalid. Refer to PA_EXPEND_TYP_SYS_LINKS for valid expenditure type/expenditure type class combinations.||all|
|Invalid non-labor resource (INVALID_NL_RSRC)||The non-labor resource does not exist. Refer to the Non-Labor Resources window for a list of all valid non-labor resources or to create a new new non-labor resource.||usage logs|
|Invalid non-labor resource organization (INVALID_NL_RSRC_ ORG)||The non-labor resource organization does not exist. Refer to the Non-Labor Resources window for a list of all valid organizations for a particular non-labor resource or to assign a new organization to a non-labor resource.||usage logs|
|Invalid organization (INVALID_ ORGANIZATION)||The expenditure organization does not exist. Refer to the expenditure organization hierarchy set up in Oracle Projects to determine all organizations defined as valid expenditure organizations.||all|
|Invalid project (INVALID_PROJECT)||The project number does not exist. Refer to the Projects Summary window for a list of all valid projects or to the Projects, Templates Summary window to create a new project by copying an existing project or template.||all|
|Invalid project type (INVALID_PROJECT_ TYPE)||The project type for the given project is invalid.||all|
|Invalid task (INVALID_ TASK)||The task number does not exist for the project, or the task is not a lowest task. Open your project and choose the Tasks option to view all valid tasks or to create a new lowest task.||all|
|Invalid transaction source (INVALID_TRX_ SOURCE)||Oracle Projects does not recognize the transaction source. Refer to the Transaction Sources window for a list of valid transaction sources or to create a new transaction source.||all|
|No open or future PA period for the expenditure item and GL dates (INVALID_PA_DATE)||There is no open or future PA period for the given expenditure item and GL dates.||GL accounted transactions|
|Non-labor resource expenditure type different (NL_EXP_TYPE_DIFF)||The non-labor resource is not associated with the expenditure type. Refer to the Non-Labor Resources window for a listing of all valid non-labor resources and their expenditure types or to create a new non-labor resource.||usage logs|
|Non-labor resource inactive (NL_RSRC_INACTIVE)||The non-labor resource has been defined, but it is either not yet effective or has already expired as of the expenditure item date. Refer to the Non-Labor Resources window for a list of valid non-labor resources and their effective dates or to change the effective dates.||usage logs|
|Non-labor resource mandatory for usages (NL_RSRC_MAND_|
|A non-labor resource has not been specified. Enter the non-labor resource name for the rejected expenditure item in your usage log.||usage logs|
|Non-labor resource owning organization mandatory for usages (NL_RSRC_ORG_|
|A non-labor resource organization has not been specified. Enter the appropriate organization name.||usage logs|
|No assignment (NO_ASSIGNMENT)||The employee does not have an active assignment to a specific organization and job as of the expenditure item date. Verify the expenditure item date and the employee assignment and make changes, if necessary. You can also refer to the Person Information window for the employee's organization and job assignments and their effective dates, to change an assignment's effective dates, or to create a new assignment.||all|
|No matching item (NO_MATCHING_ ITEM)||If the transaction is an adjustment with a negative quantity, and the unmatched negative flag is not set to Yes, an original, approved, unreversed expenditure item matching the transaction's employee/organization, item date, expenditure type, project, task, reversing quantity, reversing cost (if loading costed items via Transaction Import), and non-labor resource and non-labor organization (for usages) must exist. Also, the matching expenditure item must have been originally loaded from the same transaction source. If more than one item matches the original item, Oracle Projects uses the first one that was created.||adjusting transactions|
|No raw cost (NO_RAW_COST)||Raw cost amount is missing. Expenditure items with a costed transaction source must include this information.||all|
|Organization does not own the non-labor resource (ORG_NOT_OWNER_|
|The non-labor resource has not been assigned to the non-labor resource organization as of the expenditure item date. Refer to the Non-Labor Resources window for a list of all organizations associated with the resource or to associate a new organization with the resource.||usage logs|
|Project is not chargeable (PA_PROJECT_NOT_ VALID)||The project is a template; has a transaction control that does not allow charges; does not share a business group, set of books, and PA period type with the user's operating unit; or the project status does not allow new transactions.||all|
|Project does not allow burden transactions (PROJ_NOTALLOW_ BURDEN)||Burden transactions are not allowed for this project.||burden transactions|
|Transaction source does not allow burden transactions (TRXSRC_NOTALLOW_BURDEN)||Burden transactions are not allowed for transactions you import from this transaction source.||burden transactions|
|Transaction source inactive (TRX_SOURCE_ INACTIVE)||The transaction source has been defined, but either is not yet effective or has already expired as of the expenditure item date. Refer to the Transaction Sources window for a list of all valid transaction sources and their effective dates or to change the effective dates.||all|
|You may receive the following rejection reasons when you use Transaction Import to import an expenditure or when you enter an expenditure in Oracle Applications (pre-approved expenditures in Oracle Projects, purchase orders and requisitions in Oracle Purchasing, or supplier invoices in Oracle Payables). You may also receive additional rejection reasons if your company has implemented transaction controls.|
|Project/Task validation error (PA_EXP_INV_PJTK)||The project or task does not exist, or the task does not belong to the project. Change the expenditure item's project or task.||all|
|Project/Task-level expenditure transaction control violated (PA_EXP_PJ/TASK_TC)||The transaction violates the project- or task-level transaction controls defined for the project. Refer to the Transaction Controls window (under Project Options or Tasks, Options) for a list of the transaction controls on the project or task or to change the transaction controls to allow you to charge the expenditure item. You can also charge the expenditure item to another project or task.||all|
|The task is not chargeable (PA_EXP_TASK_ STATUS)||The task's Allow Charges flag has not been enabled. Enable this flag from the task's Task Details window or charge the item to another task.||all|
|Expenditure item cannot be charged to a Closed project (PA_EX_PROJECT_|
|Project status does not allow transactions to be charged to this project. Change the status of the project or charge the expenditure item to another project.||all|
|Expenditure item date is not within the active dates of the task (PA_EXP_TASK_EFF)||Change the expenditure item date or the task's active dates, or charge the expenditure item to another task.||all|
|Expenditure item date is not within the active dates of the project (PA_EX_PROJECT_ DATE)||Change the expenditure item date or the project's active dates, or charge the expenditure item to another project.||all|
If you cannot access any of the windows mentioned in the table above to change project or expenditure information, contact the project's key member and request that certain information be changed.