PO Accounting Defaults
PO Accounting Defaults
PO Accounting Defaults
1
Copy right (c) 2024, Oracle. A ll rights reserv ed. Oracle Confidential.
In this Document
Abstract
History
Details
Introduction to Transaction Account Builder (TAB)
Components of TAB
Defaulting of Accounts in Purchase Requisition
Defaulting of Accounts in Purchase Order
How to create User Defined Account Rules?
Technical Design
Summary
References
APPLIES TO:
ABSTRACT
This document describes the feature 'Transaction Account Builder (TAB)' introduced in Fusion Applications and covers the
following aspects.
Components of TAB which play a vital role in defaulting the accounts in Purchasing documents
Shows a matrix structure explaining the defaulting of accounts in Purchase Requisition and Purchase Order for various
scenarios
How to create User Defined Account Rules and derive accounts to meet different business requirements (explained with
a Case Study)
Technical design aspects - APIs,tables involved and data flow
HISTORY
Author:Manighandan Venkatraman
Create Date 18-Dec-2010
Update Date 18-Dec-2010
Expire Date
DETAILS
Transaction Account Builder(TAB) is a new feature introduced in Fusion Applications which is responsible for generating the
accounts in Requisitions and Purchase Orders. It is equivalent to the Account Generator workflow which was defaulting the
https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrl-state=v2m180qbn_212&id=1274985.1 1/18
3/19/24, 2:18 PM Document 1274985.1
accounts in purchasing documents in e-Business Suite. TAB also provides the option of creating account rules to derive the
entire account or a particular segment of an account depending on the business requirement so that this derived account will
get defaulted in the purchase order distributions. The accounts that get defaulted by TAB in the purchasing documents are
given below.
Charge Account
Accrual Account
Variance Account
Destination Charge Account (in case of Center Led Procurement)
Destination Variance Account (in case of Center Led Procurement)
Budget account (Please note that Budget account does not exist in V1 release as Encumbrance Accounting is not a part
of V1. But in future releases, when encumbrance accounting is included, TAB will default the budget account also in the
purchasing documents)
TAB consists of various components which helps in deriving the accounts based on specific rules and defaulting the accounts.
These components contain the below mentioned factors based on which defaulting of account happens.
What are the various accounts that should get defaulted in the purchasing document
Based on what conditions or attributes, a particular account should get defaulted
What is the source used to derive these accounts
What are the input parameters based on which appropriate account should be picked and defaulted
Please refer to the attachment which gives a clear picture of all the components involved in TAB and how they are interrelated.
This component lists different kind of accounts that are used in the Purchasing subledger application which should get defaulted
when the requisition or purchase order is saved. Various accounts listed under Transaction account types are given below.
Accrual account
Charge account
Destination charge account
Destination Variance account
https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrl-state=v2m180qbn_212&id=1274985.1 2/18
3/19/24, 2:18 PM Document 1274985.1
Variance account
It is a grouping of account rules for each Transaction account type used to derive a code combination which should get
defaulted in the requisition or purchase order distributions. Once this TAD is assigned to the ledger, all the purchase requisitions
and purchase orders created in business units attached to the ledger will follow the account rules defined under that TAD and
accounts will get defaulted accordingly. If there is a requirement to derive accounts based on user defined account rules, then
TAD should also be user defined and it should be assigned to the ledger. The name of the seeded TAD available in Purchasing
subledger is 'Purchasing TAB Default Accounting' and its short name is PRC_PO_TAB
Navigation:
To access the TAD available in Purchasing subledger, the Purchasing subledger application has to be registered as a
preliminary step. This needs to be done every time when you login to Subledger Accounting UI before accessing any of
the TAB components such as Transaction Account Definition, Account Rules, Mapping sets etc. Hence navigate to Setup
and maintenance > selcect Procurement Area > highlight 'Procurement Transaction Account Rules '> Right side you will
see all TAB setup tasks
Navigate to Transaction Account Builder in Subledger Accounting tab of Ledger Application UI. Click the default TAD
'Purchasing TAB Default Accounting' which will show the Transaction Account types and their corresponding seeded
account rules. But the segment rules columns shown against these seeded account rules will not be editable as this TAD
is a seeded one. But these columns are editable for user defined TAD where the user defined account combination rules
and segment rules can be specified. User defined TAD can be created in the same page by clicking the 'Create ' option
available in the Actions menu.
https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrl-state=v2m180qbn_212&id=1274985.1 3/18
3/19/24, 2:18 PM Document 1274985.1
To assign the TAD to the ledger, navigate to Accounting option in the Subledger Accounting tab and query the ledger.
Choose the component type 'Purchasing' and click on Accounting options and assign the Transaction Account Definition to
the ledger.
c) Mapping Set:
This component helps in deriving the entire code combination or individual segment value of a code combination based on
some values of an input source.
e.g: CST_EXPENSE_ACCT_ITM_MS - This mapping set is used for defaulting the charge account in the purchase order for
expense items. For an expense item number AS54999 and inventory organization M1 which are the input sources to this
mapping set, the code combination should be 01-000-1410-0000-000 which is the output. Therefore, whenever a purchase
order is raised for the item AS54999 with destination organization as M1, the account 01-000-1410-0000-000 will get defaulted
in the purchase order
e.g: PO_NATURAL_ACCOUNT_MS - This mapping set is used for defaulting the natural account segment of the charge
account in the purchase order for one time expense item. For the category 'Miscellaneous_1' and Requisitioning Business unit
'Vision Operations' which are the input sources to this mapping set, the natural account segment of PO charge account should
be 7530 which is the output. Therefore, whenever a purchase order is raised for one item expense item with category as
'Miscellaneous_1' and Requisitioning Business unit as 'Vision Operations', the natural account segment of charge account will
get defaulted as 7530 in the purchase order.
Navigation:
Setup and maintenance > selcect Procurement Area > highlight 'Procurement Transaction Account Rules '> Right side Manage
Mapping sets > Click the Mapping set name "Expense Account - Item"(for ex)
https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrl-state=v2m180qbn_212&id=1274985.1 4/18
3/19/24, 2:18 PM Document 1274985.1
On clicking the Mapping set "Expense Account - Item", the screenshot given below will be displayed which shows the inputs
'Item number' and 'Inventory organization code', chart of accounts used and the output which is a code combination that gets
defaulted in the purchasing document as Charge account for expense items.
d) Source:
Sources are the pieces of transaction information that can be used to derive default accounts. There are two different types of
sources used by the Account Rules to derive the accounts.
Reference Account source - Existing reference account data that exists in table or views. These reference account
sources should have the key flexfield enabled in Manage Sources UI as shown below so that they can be used in the
Account rules to derive the account. (e.g.Employee Charge Account)
Condition source - Source that serves as a condition in Account rules to default the account (e.g.Destination type code)
Navigation:
Setup and maintenance > selcect Procurement Area > highlight 'Procurement Transaction Account Rules '> Right side click on
Manage Sources
https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrl-state=v2m180qbn_212&id=1274985.1 5/18
3/19/24, 2:18 PM Document 1274985.1
e) Account Rules:
Account Rules contain the source values and specific conditions based on which accounts are derived. This Account Rule
consists of following subcomponents
Rule Type - It tells whether the entire code combination needs to be derived or an individual segment of a code
combination needs to be derived based on a source or the code combination should be derived using a value set. Hence
this Rule type field has the LOV listing the values - Account combination,Segment and Value set.
Value Type - It tells whether the account/code combination has to be derived from a Reference Account source such as
Employee charge account or based on a Mapping set or from an already existing Account Rule or based on a constant
value. Hence this Value type field has the LOV listing the values - Source,Mapping set,Account Rule and Constant
Value for the value type specified - If the value type is Source, then the value will be some Reference Account sources
such as Employee charge account.
Conditions - It tells under what scenario a particular account rule should default the account in the purchase order.
These conditions use the Condition sources such as destination type code to determine when a particular account rule
should default the account. e.g: "Inventory Expense Account Item for ship-to org" Is not null 'And' "Destination Type
Code"(PO) = EXPENSE 'And' "Inventory Item" Is not null 'And' "Cross BU" = N -- This condition applies for the Account
Rule PO_CHARGE_ACCOUNT. It signifies that the PO Charge account will get defaulted in the purchase order based on
this Account rule only when the Purchase order is raised for an item which is assigned to the ship to org specified in the
PO and when the destination type code is Expense and when the inventory flag is set to Yes for the item and when this
PO is not created in Center Led Procurement scenario.
Priority - It tells the precedence logic to be followed by the Account Rule to default a particular account in the purchase
order. e.g: PO charge account for an inventory expense item with Inventory destination can get defaulted based on Sub-
Inventory, Item, Ship to Org. Hence this Priority helps in determining from where the account should get defaulted first,
whether from Sub-inventory or item or ship to org.
Navigation:
Setup and maintenance > selcect Procurement Area > highlight 'Procurement Transaction Account Rules '> Right side Manage
Account Rules
https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrl-state=v2m180qbn_212&id=1274985.1 6/18
3/19/24, 2:18 PM Document 1274985.1
On clicking this Account rule, the screenshot given below gets displayed which shows the rule type whether it is an account
combination or segment, priority, Source type and sources used and the conditions under which this account rule should be
applied.
Accounts get defaulted in Purchasing documents mainly based on two major attributes - nature of the item, whether it is an
inventory item or expense item and the destination type specified - Inventory or Expense. Hence the defaulting of accounts is
given in a matrix structure below which is classified based on the nature of the item and the destination type used in the
Purchase Requisition.
a) Inventory Asset item (Inventory flag = Y; Asset flag = Y; Costed flag = 'Y') delivered to Inventory destination
Account Type Priority Value Name Input Parameter Set up from where the account
Type for Mapping set defaults
AP Accrual N/A Mapping Accrual Account - Ship to org Accrual Account defined in Mapping
account for set Organization set for the destination inventory
Inventory item organization
https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrl-state=v2m180qbn_212&id=1274985.1 7/18
3/19/24, 2:18 PM Document 1274985.1
Variance account N/A Mapping Invoice Price Variance Ship to org Invoice Price Variance Account
set Account - defined in Mapping set for the
Organization destination inventory organization
Charge account 1 Mapping Material Account - Subinventory and Material Valuation Account defined in
set Subinventory ship to org Mapping set for the Subinventory
specified in REQ distributions
Charge account 2 Mapping Material Account - Ship to org Material Valuation Account defined in
set Organization Mapping set for the destination
inventory organization
b) Inventory Expense item (Inventory flag = Y; Asset flag = N; Costed flag = 'N') delivered to Inventory destination
Account Type Priority Value Name Input Parameter Set up from where the account
Type for Mapping set defaults
AP Accrual N/A Mapping Accrual Account - Ship to org Accrual Account defined in Mapping
account for set Organization set for the destination inventory
Inventory item organization
Variance account N/A Mapping Invoice Price Variance Ship to org Invoice Price Variance Account
set Account - defined in Mapping set for the
Organization destination inventory organization
Charge account 1 Mapping Material Account - Subinventory and Expense Account defined in Mapping
set Subinventory ship to org set for the Subinventory specified in
REQ distributions
Charge account 2 Mapping Expense Account - Item and ship to Expense Account defined in Mapping
set Item org set for the item used in the PR
Charge account 3 Mapping Material Account - Ship to org Expense Account defined in Mapping
set Organization set for the destination inventory
organization
c) Inventory Expense item (Inventory flag = Y; Asset flag = N; Costed flag = 'N') delivered to Expense destination and
Pure Expense item (Inventory flag = N) delivered to Expense destination
Account Priority Value Name Input Set up from where the account
Type Type Parameter for defaults
Mapping set
AP Accrual N/A Source Accounts Payable Accrual N/A Accrual Account defined in Financial
account for Account for Expense options for the Requisitioning BU
Expense item Item in Requisitioning BU
Variance N/A Source REQ Charge Account N/A Charge Account defaulted in PO
account distributions (Charge account is called
prior to Variance account while
defaulting the accounts in REQ
distributions)
Charge 1 Source User Preferred Account N/A Expense Account defined in User
account for Requester preferences for the Requester in
Requisition Preferences of Create
Requisition UI
https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrl-state=v2m180qbn_212&id=1274985.1 8/18
3/19/24, 2:18 PM Document 1274985.1
Charge 2 Mapping Expense Account - Item Item and ship to Expense Account defined in Mapping set
account set org for the item used in the PR
d) One time Expense item (non system defined item - category based) delivered to Expense destination
Account Type Priority Value Value Input Set up from where the account
Type Parameter for defaults
Mapping set
AP Accrual account N/A Source Accounts Payable N/A Accrual Account defined in Financial
for Expense item Accrual Account for options for the Requisitioning BU
Expense Item in
Requisitioning BU
Variance account N/A Source REQ Charge Account N/A Charge Account defaulted in PR
distributions (Charge account is
called prior to Variance account
while defaulting the accounts in REQ
distributions)
Charge account 1 Source User Preferred Account N/A Expense Account defined in User
for Requester preferences for the Requester in
Requisition Preferences of Create
Requisition UI
Charge 2 Mapping Purchasing Natural Category and Natural account defined for the
account(Natural set Account for TAB Requisitioning BU category in Requisitioning BU along
account) with other segments of Employee
charge account forms the REQ
Charge Account
Charge account 3 Source Employee Charge N/A Expense Account defined in HCM
Account module for the Requestor
Accounts get defaulted in Purchasing documents mainly based on two major attributes - nature of the item, whether it is an
inventory item or expense item and the destination type specified - Inventory or Expense. Hence the defaulting of accounts is
given in a matrix structure below which is classified based on the nature of the item and the destination type used in the
Purchase Order.
a) Inventory Asset item (Inventory flag = Y; Asset flag = Y; Costed flag = 'Y') delivered to Inventory destination
AP Accrual account N/A Source Accounts Payable Accrual Account for N/A Accrual Account
for Inventory item Expense Item in Sold-to BU* defined in Financial
in Center led
https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrl-state=v2m180qbn_212&id=1274985.1 9/18
3/19/24, 2:18 PM Document 1274985.1
Procurement options for the Sold-
scenario* To BU*
https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrl-state=v2m180qbn_212&id=1274985.1 10/18
3/19/24, 2:18 PM Document 1274985.1
b) Inventory Expense item (Inventory flag = Y; Asset flag = N; Costed flag = 'N') delivered to Inventory destination
AP Accrual N/A Source Accounts Payable Accrual Account for N/A Accrual Account
account for Expense Item in Sold-to BU* defined in Financial
Inventory item in options for the Sold-To
Center led BU*
Procurement
scenario*
Charge Account 1 Source Requisition Charge Account N/A Charge Account defined
in backing Requisition
https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrl-state=v2m180qbn_212&id=1274985.1 11/18
3/19/24, 2:18 PM Document 1274985.1
c) Inventory Expense item (Inventory flag = Y; Asset flag = N; Costed flag = 'N') delivered to Expense destination and
Pure Expense item (Inventory flag = N) delivered to Expense destination
Account Type Priority Value Value Input Setup from where the
Type parameter account defaults
for Mapping
set
AP Accrual N/A Source Accounts Payable Accrual Account N/A Accrual Account defined in
account for for Expense Item in Sold-to BU* Financial options for the Sold-
Expense item To BU*
https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrl-state=v2m180qbn_212&id=1274985.1 12/18
3/19/24, 2:18 PM Document 1274985.1
AP Accrual N/A Source Accounts Payable Accrual Account N/A Accrual Account defined in
account for for Expense Item in Sold-to BU* Financial options for the Sold-
Expense item in To BU*
Center led
Procurement
scenario*
Charge account 1 Source Requisition Charge Account N/A Charge Account defined in
backing Requisition
Charge account 2 Mapping CST_EXPENSE_ACCT_ITM_MS Item and ship Expense Account defined in
set to org Mapping set for the item used
in the PO
Charge account in N/A Mapping CST_EXPENSE_ACCT_ITM_MS Item and Expense Account defined in
Center led set Transaction Mapping set for the item used
Procurement Flow default in the PO which is assigned to
scenario* org* Transaction flow default
organization*
Destination Charge 1 Source Requisition Charge Account N/A Charge Account defined in
account (Center backing Requisition
led Procurement
scenario)*
https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrl-state=v2m180qbn_212&id=1274985.1 13/18
3/19/24, 2:18 PM Document 1274985.1
d) One time Expense item (non system defined item - category based) delivered to Expense destination
Account Type Priority Value Value Input Setup from where the
Type parameter account defaults
for Mapping
set
AP Accrual N/A Source Accounts Payable Accrual Account for N/A Accrual Account defined
account for Expense Item in Sold-to BU* in Financial options for
Expense item the Sold-To BU*
AP Accrual N/A Source Accounts Payable Accrual Account for N/A Accrual Account defined
account for Expense Item in Sold-to BU* in Financial options for
Expense item in the Sold-To BU*
Center led
Procurement
scenario*
Charge account 1 Source Requisition Charge Account N/A Charge Account defined
in backing Requisition
Charge account 2 Mapping Purchasing Natural Account for TAB Category and Natural account defined
(Natural set Requisitioning for the category in
account) BU Requisitioning BU along
with other segments of
Employee charge account
forms the PO Charge
Account
Charge account 3 Source Employee Charge Account N/A Expense Account defined
in HCM module for the
Requestor (deliver to
person)specified in PO
distribution
https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrl-state=v2m180qbn_212&id=1274985.1 14/18
3/19/24, 2:18 PM Document 1274985.1
Procurement
scenario)*
Destination 2 Mapping Purchasing Natural Account for TAB Category and Natural account defined
Charge account set Destination Charge Account Requisitioning for the category in
(Center led BU Requisitioning BU along
Procurement with other segments of
scenario)* Employee charge account
forms the PO Charge
Account
* Sold-To BU refers to the Business unit where the invoice is raised against the supplier for the goods or services procured and
the payables liability will go.
* Center Led Procurement refers to a scenario where the Requisitioning Business Unit (Client BU) and Sold-To Business unit are
different. Requisition will be raised in one BU where as the invoice against the supplier will be created in a different BU.
* Transaction flow default organization refers to the inventory organization specified in Intercompany parameters while defining
the Start and End Business units with the intercompany flow type.
TAB gives the flexibility to derive the accounts with the help of user defined account derivation rules to meet various business
requirements which could not be met by seeded account rules. You can either derive an individual segment of a code
combination or the entire code combination from some other reference account source. You can also derive a code combination
using some constant values.
Business Case example: Balancing segment of AP Accrual account for Expense item used in a PO should be derived from its
corresponding Purchase Order distribution Charge account.
Create a new Account Rule choosing the Chart Of Accounts, Rule type as segment or Account combination depending on
the requirement whether an individual segment needs to be derived or the entire code combination has to be derived
Navigation: Ledger Application UI > Subledger Accounting tab > Account Rules
Define the rule choosing the value type as Source/Constant /Mapping set /Account rule and specify the corresponding
value
https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrl-state=v2m180qbn_212&id=1274985.1 15/18
3/19/24, 2:18 PM Document 1274985.1
Write a new condition based on which this account rule should default the account or use the existing condition itself for
the user defined rule
Define a Transaction Account Definition and attach the user defined Account rule to it.
Navigation: Ledger Application UI > Subledger Accounting tab > Transaction Account Builder > Click the 'Create '
option available in the Actions menu > Choose the user defined account rule from the LOV of Account
Combination rules or Segment rules
Navigation: Ledger Application UI > Subledger Accounting tab > Accounting option > Choose the component type
'Purchasing' and click on Accounting options and assign the User defined Transaction Account Definition to the
ledger
Te chnical De sign
The edit PO UI calls initChargeAccounts function present in PoAccgenTABUtil.java and that in turn calls the API
po_accgen_tab which is a plsql package
Within this plsql package, other required sources are derived and a temporary GT table is set up and this package calls
run_tab which is an API in SLA
This API run_tab calls the FIN TAB engine to derive the accounts. TAB engine depends on the Transaction Account
Definition, Account Rules and Transaction Account types to derive the accounts and populate the GT table rows. For TAB
engine to return the value, it has to pick the appropriate Account Rule. This happens based on the attributes such as
Destination type, ship to org,TF header id which are passed as input parameters to the SLA call by the PO API
Then, po_accgen_tab reassess the GT table and retrieves the accounts and sends those values to the PO Edit UI
Even the modules autocreate, copydoc, Requisitions directly call the PO API po_accgen_tab which inturn calls the TAB
engine to derive the accounts
For Purchase Orders created through PDOI (Purchasing Document Open Interface), a different API
po_pdoi_move_to_draft_tabs_pvt makes the SLA call and gets the appropriate accounts from TAB engine
The diagram given below shows a clear picture of the technical aspects involved in defaulting the accounts using TAB.
Data flow
https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrl-state=v2m180qbn_212&id=1274985.1 16/18
3/19/24, 2:18 PM Document 1274985.1
Following are the tables that store the account derivation rules and other TAB components in the Subledger Accounting data
model:
XLA_LEDGER_OPTIONS: This table shows the name of Transaction Account Definition that is assigned to the ledger. All
the Requisitions and Purchase Orders created in Business units attached to a ledger will have the accounts that get
defaulted based on the account rules defined under the Transaction Account Definition assigned to the ledger.
XLA_TAB_ACCT_DEFS_B: This table lists all the Transaction Account Definitions (TAD) available for the applications such
as Purchasing or Payables and it also shows the status of TAD whether it is active or incomplete. For procurement the
seeded account definition is PRC_PO_TAB.
XLA_TAB_ACCT_TYPES_B: Various account types available under a TAD are listed in this table. e.g: Accrual
Account,Variance Account, Destination Charge account.
XLA_SEG_RULES_B: This table stores the definition information of the account derivation rules and it also tells whether
the account rule is seeded or user defined.
XLA_SEG_RULE_DETAILS: This table stores the details of each account derivation rule. For each account derivation rule
in the table XLA_SEG_RULES_B there must be at least one row in the table XLA_SEG_RULE_DETAILS. It shows the
details of value type used in an account rule whether it is a source or mapping set and the value of the source and
mapping set.
XLA_CONDITIONS: It stores the conditions defined for each detail of an account derivation rule. For each row in the
table XLA_SEG_RULE_DETAILS there may be one or more rows in table XLA_CONDITIONS. In some cases, when the
detail is defined as being the default detail of the account derivation rule, there is no condition associated to it.
XLA_SOURCES_B: This table lists all the sources available for an application and shows whether it is a seeded source or
user defined. e.g: EMPLOYEE_CHARGE_ACCOUNT. There is a column "KEY_FLEXFIELD_FLAG" in this table which tells
whether a particular source can be used in the account rule to derive a code combination or a segment of code
combination. This column should have the value "Y" for any Reference account source so that it can be used in the
account rules to derive the account based on that source.
XLA_MAPPING_SET_VALUES: This table stores the definition information of Mapping sets available for an application. It
also shows the input parameters used in a Mapping set in columns such as "INPUT_VALUE_CONSTANT1",
https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrl-state=v2m180qbn_212&id=1274985.1 17/18
3/19/24, 2:18 PM Document 1274985.1
"INPUT_VALUE_CONSTANT2" and the corresponding output value which is a code combination or an individual segment
of a code combination in columns "VALUE_CONSTANT" or "VALUE_CODE_COMBINATION_ID".
SUMMARY
Thus the document helps in understanding the components of Transaction Account Builder and the defaulting mechanism of
accounts in Purchasing documents using seeded account rules or user defined account rules. But the defaulting of accounts
based on Project Accounting Rules when Project is specified in PR or PO distributions is out of scope of this document.
REFERENCES
NOTE:1507175.1 - Transaction Account Builder in Oracle Fusion Procurement
Didn't find what you are looking for?
https://support.oracle.com/epmos/faces/DocumentDisplay?_adf.ctrl-state=v2m180qbn_212&id=1274985.1 18/18