Difference between revisions of "Member Attributes"
>Johno (→Host ATTRFILE) |
>Johno (→Sample ATTRFILE) |
||
(42 intermediate revisions by the same user not shown) | |||
Line 31: | Line 31: | ||
:* Based on specific loan products by editing the [[Loan Types & Products|LNXREF file]]. | :* Based on specific loan products by editing the [[Loan Types & Products|LNXREF file]]. | ||
− | The definition of an attribute can combine multiple flags. For example, the ''OK to Send Mail'' attribute could check a bad address flag, a deceased flag and an opt-out flag. If any of these flags are set, the attribute would be false. | + | The definition of an attribute can combine multiple flags. For example, the ''OK to Send Mail'' attribute could check a bad address flag, a deceased flag and an opt-out flag. If any of these flags are set, the attribute would be false. |
+ | |||
+ | '''At most 30 attributes can be defined.''' | ||
+ | |||
+ | == Sample Member Attributes == | ||
+ | |||
+ | [[File:Member Attributes.png]] | ||
== Host ATTRFILE == | == Host ATTRFILE == | ||
− | The host ATTRFILE is used to define the attribute names, numbers and their calculation logic. This file is a text file, that must have a very precise layout. | + | The host ATTRFILE is used to define the attribute names, numbers and their calculation logic. The file is saved in the custom/live directory in /ASKPLUS/vsdata. |
+ | |||
+ | This file is a text file, that must have a very precise layout. | ||
{| class="wikitable" | {| class="wikitable" | ||
Line 50: | Line 58: | ||
| IDX | | IDX | ||
| 6-10 | | 6-10 | ||
− | | | + | | Yes (*) |
| The attribute variable index if this attribute is calculated during the core extract. | | The attribute variable index if this attribute is calculated during the core extract. | ||
|- | |- | ||
Line 65: | Line 73: | ||
| INCLUDE | | INCLUDE | ||
| 46-55 | | 46-55 | ||
− | | | + | | Yes (*) |
| Name of an AskPlus include file if this attribute is calculated during the core extract. | | Name of an AskPlus include file if this attribute is calculated during the core extract. | ||
|- | |- | ||
Line 84: | Line 92: | ||
|} | |} | ||
− | : * Required if the attribute is being calculated during the host extract. | + | : * Required '''only''' if the attribute is being calculated during the host extract. |
:'''NBR:''' | :'''NBR:''' | ||
::Must be a number between 1 and 30. The number determines the position of the attribute when it is displayed in the document. Attribute numbers do not have to be contiguous. | ::Must be a number between 1 and 30. The number determines the position of the attribute when it is displayed in the document. Attribute numbers do not have to be contiguous. | ||
:'''IDX:''' | :'''IDX:''' | ||
− | ::Is the index of the #ATTR variable that calculates the attribute. Refers to the calculation in the AskPlus include file in the INCLUDE column. See examples below. | + | ::Is the index of the #ATTR variable that calculates the attribute. Refers to the calculation in the AskPlus include file in the INCLUDE column. The index must be between 1 and 30, but does not need to be contiguous. See examples below. |
:'''CNT:''' | :'''CNT:''' | ||
Line 101: | Line 109: | ||
:'''FIELD-NAME:''' | :'''FIELD-NAME:''' | ||
− | Is the name of the field that will be loaded in the Qlik documents. This name will be shown in the ''Current Selections'' window and used when making a Document Distribution selection. | + | ::Is the name of the field that will be loaded in the Qlik documents. This name will be shown in the ''Current Selections'' window and used when making a Document Distribution selection. |
:'''Attribute Description:''' | :'''Attribute Description:''' | ||
Line 107: | Line 115: | ||
:'''The X Column:''' | :'''The X Column:''' | ||
− | The last character on each record must be X. This column is used to help ensure that each record has '''exactly 106 characters'''. Trailing spaces are not allowed. | + | ::The last character on each record must be X. This column is used to help ensure that each record has '''exactly 106 characters'''. Trailing spaces are not allowed. |
'''Transferring the file to UNIX:''' | '''Transferring the file to UNIX:''' | ||
− | If you edit the file locally and then transfer it to UNIX, make sure the file only contains linefeed characters and does not contain and carriage returns (^M). Using an ASCII file transfer is the easiest way to eliminate unwanted carriage returms. The dos2ux utility will also work. Viewing the file in vi is the easiest way to check for unwanted carriage returns as they will be displayed as ^M. | + | :If you edit the file locally and then transfer it to UNIX, make sure the file only contains linefeed characters and does not contain and carriage returns (^M). Using an ASCII file transfer is the easiest way to eliminate unwanted carriage returms. The dos2ux utility will also work. Viewing the file in vi is the easiest way to check for unwanted carriage returns as they will be displayed as ^M. |
+ | |||
+ | == Sample ATTRFILE == | ||
+ | |||
+ | The example below shows a partial ATTRFILE: | ||
+ | |||
+ | NBR__IDX__CNT__PRIMARY.TOPIC_________________INCLUDE___FIELD-NAME__________Attribute Description_________X | ||
+ | 1 1 SHLNTOTS.SHLNTOTS ITOTATTR SINGLE_SERVICE Single Service X | ||
+ | 2 1 MEMBRS.MEMBER-FILE IMBRATTR OK_TO_MAIL OK to Mail X | ||
+ | 3 2 MEMBRS.MEMBER-FILE IMBRATTR DORMANT Dormant X | ||
+ | 4 3 MEMBRS.MEMBER-FILE IMBRATTR INACTIVE Inactive X | ||
+ | 6 5 MEMBRS.MEMBER-FILE IMBRATTR ONLINE_BANKING Online Banking X | ||
+ | 7 6 MEMBRS.MEMBER-FILE IMBRATTR E_STATEMENTS eStatements X | ||
+ | 8 7 MEMBRS.MEMBER-FILE IMBRATTR DIRECT_DEPOSIT Direct Deposit X | ||
+ | 11 1 N/A SHXREF SAVINGS Savings Accounts X | ||
+ | 12 2 N/A SHXREF CLUB_ACCTS Club Accounts X | ||
+ | 13 3 N/A SHXREF CHECKING_ACCTS Checking Accounts X | ||
+ | 14 5 N/A SHXREF SHARE_CERTS Share Certificates X | ||
+ | 15 6 N/A LNXREF IRA_SAVING_CDS IRA Savings/CDs X | ||
+ | 16 11 N/A LNXREF NEW_VEHICLE New Vehicle X | ||
+ | 17 12 N/A LNXREF USED_VEHICLE Used Vehicle X | ||
+ | 18 13 N/A LNXREF LOC LOC X | ||
+ | 19 14 N/A LNXREF FIRST_MORTGAGE 1st Mortgage X | ||
+ | 20 15 N/A LNXREF OTHER_REAL_ESTATE Other Real Estate X | ||
+ | 21 1 MEMBRS.LOAN-FILE ILNATTR DELQ_LOANS Delinquent Loans X | ||
+ | |||
+ | * When calculating attributes from SHXREF and LNXREF, the "N/A" '''is required''' in the primary topic column. | ||
+ | * It is '''not necessary''' to enter SHXREF and LNXREF in the include file column, however, it is valid and helps to ''document'' where the attributes are actually defined. | ||
+ | |||
+ | ==== Calculating Attributes from an SD file ==== | ||
+ | |||
+ | The first attribute is calculated from an SD file that is created during the load called SHLNTOTS which counts the total number of active (open) shares and loans for each member. The ITOTATTR file contains the following: | ||
+ | |||
+ | * Calculate Member Attributes from SHLNTOTS: | ||
+ | * | ||
+ | << Single Service >> | ||
+ | #ATTR(1)=(%VS-ACTIVE-MBR AND SHLNTOTS.MBR-ACTIVE-SH-CNT = 1 AND SHLNTOTS.MBR-ACTIVE-LN-CNT = 0) | ||
+ | |||
+ | * The macro VS-ACTIVE-MBR is configured in the main Vital Signs [[Vital_Signs Macro Definitions|macro file]]. | ||
+ | |||
+ | ==== Calculating Attributes from MEMBER-FILE ==== | ||
+ | |||
+ | Attributes 2-4 and 6-8 are calculated from MEMBER-FILE. Notice how the IDX values in the sample ATTRFILE match the #ATTR(idx) in the IMBRATTR file. The IMBRATTR file contains the following. | ||
+ | |||
+ | * Calculate MEMBER-FILE Attributes: | ||
+ | |||
+ | << OK To Mail >> | ||
+ | #ATTR(1)=(MEMBER-FILE.CONTROL-FLAGS(21) <> 1 AND MEMBER-FILE.CONTROL-FLAGS(24) <> 1 AND | ||
+ | MEMBER-FILE.CONTROL-FLAGS(29) <> 1 AND MEMBER-FILE.CONTROL-FLAGS(52) <> 1 AND | ||
+ | MEMBER-FILE.CONTROL-FLAGS(53) <> 1 AND MEMBER-FILE.CONTROL-FLAGS(57) <> 1) | ||
+ | |||
+ | << Dormant >> | ||
+ | #ATTR(2)=(MEMBER-FILE.REST-FLAG-11=79) | ||
+ | |||
+ | << Inactive >> | ||
+ | #ATTR(3)=(MEMBER-FILE.REST-FLAG-11=90) | ||
+ | |||
+ | << Online Banking >> | ||
+ | #ATTR(5)=(MEMBER-FILE.CONTROL-FLAGS(67)=1) | ||
+ | |||
+ | << eStatements >> | ||
+ | #ATTR(6)=(MEMBER-FILE.CONTROL-FLAGS(68)=1) | ||
+ | |||
+ | << Direct Deposit >> | ||
+ | #ATTR(7)=(MEMBER-FILE.CONTROL-FLAGS(59)=1) | ||
+ | |||
+ | ==== Calculating Attributes from SHXREF ==== | ||
+ | |||
+ | Attributes 11-15 are calculated using the [[Share Types & Products|SHXREF file]]. When an attribute is based on a member having specific share products, the SHXREF file is the easiest way to configure the corresponding attribute (and product). | ||
+ | |||
+ | For the above example, the SH_ATTR_NBR column of the SHXREF file is assigned the value 11 (Savings Account) for all rows where the share DESC-ABRV is a savings product. Since attribute 11 is also product 1, the SH_PROD_NBR will be assigned a 1. All Checking Account DESC-ABRVs will be assigned SH_ATTR_NBR=12 and SH_PROD-NBR=2. | ||
+ | |||
+ | ==== Calculating Attributes from LNXREF ==== | ||
+ | |||
+ | Attributes 16-20 are calculated using the [[Loan Types & Products|LNXREF file]]. When an attribute is based on a member having specific loan products, the LNXREF file is the easiest way to configure the corresponding attribute (and product). | ||
+ | |||
+ | For the above example, the LN_ATTR_NBR column of the LNXREF file is assigned the value 16 (New Vehicle) for all rows where the share COLLATERAL code qualifies as a new vehicle loan. Since attribute 16 is also product 11, the LN_PROD_NBR will be given the value 11. All Used Vehicle COLLATERAL codes will be assigned LN_ATTR_NBR=17 and LN_PROD-NBR=12. | ||
+ | |||
+ | ==== Calculating Attributes from LOAN-FILE ==== | ||
+ | |||
+ | Attribute 21 (Delinquent Loans) is calculated using LOAN-FILE. The LNXREF cannot be used to assign this attribute since it involves checking the loan balance and due-date. Setting up this attribute is very similar to the MEMBER-FILE attributes. In this case the primary topic is LOAN-FILE and the include file (ILNATTR) looks like this: | ||
+ | |||
+ | * Calculate LOAN-FILE Attributes: | ||
+ | * | ||
+ | |||
+ | NEWREG DAYS-DELQ:I2 | ||
+ | #DAYS-DELQ = %CYMD-DIFF-DAYS(LOAN-FILE.DUE-DATE, #ASOFDATE) | ||
+ | |||
+ | << Delinquent Loan >> | ||
+ | #ATTR(1)=(%VS-OPEN-LOAN AND LOAN-FILE.BALANCE > 0 AND #DAYS-DELQ >= %VS-DAYS-LOAN-DELQ) | ||
− | + | * The macros VS-OPEN-LOAN and %VS-DAYS-LOAN-DELQ are configured in the main Vital Signs [[Vital_Signs Macro Definitions|macro file]]. |
Latest revision as of 23:16, 2 December 2015
Contents
Overview
Member attributes are used in the Membership_Analysis and Membership_Summary documents. Member attributes allow a quick selection of members who have (or don't have) a particular attribute.
Typical Attributes are:
- Single Service
- OK to Send Mail
- Specific Services, like:
- Online Banking
- eStatements
- Direct Deposit
- RDC
- Debit Card
- Specific share products, like:
- Savings
- Checking
- CD
- IRA
- Specific loan products, like:
- LOC
- Vehicle
- Mortgage
- Other:
- Charged Off Share
- Charged Off Loan
- Delinquent Loan
Attributes can be determined in a variety of ways:
- Calculated during the nightly core extract. Many attributes are calculated from member level flags, but almost any custom logic may be used.
- Based on specific share products by editing the SHXREF file.
- Based on specific loan products by editing the LNXREF file.
The definition of an attribute can combine multiple flags. For example, the OK to Send Mail attribute could check a bad address flag, a deceased flag and an opt-out flag. If any of these flags are set, the attribute would be false.
At most 30 attributes can be defined.
Sample Member Attributes
Host ATTRFILE
The host ATTRFILE is used to define the attribute names, numbers and their calculation logic. The file is saved in the custom/live directory in /ASKPLUS/vsdata.
This file is a text file, that must have a very precise layout.
Name (Note) | Columns | Required | Purpose |
NBR | 1-5 | Yes | The attribute name. |
IDX | 6-10 | Yes (*) | The attribute variable index if this attribute is calculated during the core extract. |
CNT | 11-15 | No | The product number if this attribute is to be counted like a product. |
PRIMARY.TOPIC | 16-45 | Yes | The primary topic if the attribute is calculated during the core extract. Else N/A. |
INCLUDE | 46-55 | Yes (*) | Name of an AskPlus include file if this attribute is calculated during the core extract. |
FIELD-NAME | 56-75 | Yes | The name of the attribute field in the loaded document. |
Attribute Description | 76-105 | Yes | The displayed name of the attribute in the loaded document. |
X | 106 | Yes | A single X character that marks the end of each record. |
- * Required only if the attribute is being calculated during the host extract.
- NBR:
- Must be a number between 1 and 30. The number determines the position of the attribute when it is displayed in the document. Attribute numbers do not have to be contiguous.
- IDX:
- Is the index of the #ATTR variable that calculates the attribute. Refers to the calculation in the AskPlus include file in the INCLUDE column. The index must be between 1 and 30, but does not need to be contiguous. See examples below.
- CNT:
- Is the corresponding product number for this attribute. Products are counted and selections can be made based on the product count. To be counted, products must be defined as attributes.
- PRIMARY.TOPIC:
- Is the name of the primary topic if the attribute is being calculated during the host extract. For example, MEMBRS.MEMBER-FILE. This column must be set to N/A if the attribute is calculated later using SHXREF or LNXREF.
- INCLUDE:
- The name of a host file located in the same directory as the ATTRFILE. This file must be a valid AskPlus include file that calculates the attribute as #ATTR(IDX), where the IDX is specified in the IDX column.
- FIELD-NAME:
- Is the name of the field that will be loaded in the Qlik documents. This name will be shown in the Current Selections window and used when making a Document Distribution selection.
- Attribute Description:
- The attribute description that will be displayed in the Qlik document. See screen shot below.
- The X Column:
- The last character on each record must be X. This column is used to help ensure that each record has exactly 106 characters. Trailing spaces are not allowed.
Transferring the file to UNIX:
- If you edit the file locally and then transfer it to UNIX, make sure the file only contains linefeed characters and does not contain and carriage returns (^M). Using an ASCII file transfer is the easiest way to eliminate unwanted carriage returms. The dos2ux utility will also work. Viewing the file in vi is the easiest way to check for unwanted carriage returns as they will be displayed as ^M.
Sample ATTRFILE
The example below shows a partial ATTRFILE:
NBR__IDX__CNT__PRIMARY.TOPIC_________________INCLUDE___FIELD-NAME__________Attribute Description_________X 1 1 SHLNTOTS.SHLNTOTS ITOTATTR SINGLE_SERVICE Single Service X 2 1 MEMBRS.MEMBER-FILE IMBRATTR OK_TO_MAIL OK to Mail X 3 2 MEMBRS.MEMBER-FILE IMBRATTR DORMANT Dormant X 4 3 MEMBRS.MEMBER-FILE IMBRATTR INACTIVE Inactive X 6 5 MEMBRS.MEMBER-FILE IMBRATTR ONLINE_BANKING Online Banking X 7 6 MEMBRS.MEMBER-FILE IMBRATTR E_STATEMENTS eStatements X 8 7 MEMBRS.MEMBER-FILE IMBRATTR DIRECT_DEPOSIT Direct Deposit X 11 1 N/A SHXREF SAVINGS Savings Accounts X 12 2 N/A SHXREF CLUB_ACCTS Club Accounts X 13 3 N/A SHXREF CHECKING_ACCTS Checking Accounts X 14 5 N/A SHXREF SHARE_CERTS Share Certificates X 15 6 N/A LNXREF IRA_SAVING_CDS IRA Savings/CDs X 16 11 N/A LNXREF NEW_VEHICLE New Vehicle X 17 12 N/A LNXREF USED_VEHICLE Used Vehicle X 18 13 N/A LNXREF LOC LOC X 19 14 N/A LNXREF FIRST_MORTGAGE 1st Mortgage X 20 15 N/A LNXREF OTHER_REAL_ESTATE Other Real Estate X 21 1 MEMBRS.LOAN-FILE ILNATTR DELQ_LOANS Delinquent Loans X
- When calculating attributes from SHXREF and LNXREF, the "N/A" is required in the primary topic column.
- It is not necessary to enter SHXREF and LNXREF in the include file column, however, it is valid and helps to document where the attributes are actually defined.
Calculating Attributes from an SD file
The first attribute is calculated from an SD file that is created during the load called SHLNTOTS which counts the total number of active (open) shares and loans for each member. The ITOTATTR file contains the following:
* Calculate Member Attributes from SHLNTOTS: * << Single Service >> #ATTR(1)=(%VS-ACTIVE-MBR AND SHLNTOTS.MBR-ACTIVE-SH-CNT = 1 AND SHLNTOTS.MBR-ACTIVE-LN-CNT = 0)
- The macro VS-ACTIVE-MBR is configured in the main Vital Signs macro file.
Calculating Attributes from MEMBER-FILE
Attributes 2-4 and 6-8 are calculated from MEMBER-FILE. Notice how the IDX values in the sample ATTRFILE match the #ATTR(idx) in the IMBRATTR file. The IMBRATTR file contains the following.
* Calculate MEMBER-FILE Attributes: << OK To Mail >> #ATTR(1)=(MEMBER-FILE.CONTROL-FLAGS(21) <> 1 AND MEMBER-FILE.CONTROL-FLAGS(24) <> 1 AND MEMBER-FILE.CONTROL-FLAGS(29) <> 1 AND MEMBER-FILE.CONTROL-FLAGS(52) <> 1 AND MEMBER-FILE.CONTROL-FLAGS(53) <> 1 AND MEMBER-FILE.CONTROL-FLAGS(57) <> 1) << Dormant >> #ATTR(2)=(MEMBER-FILE.REST-FLAG-11=79) << Inactive >> #ATTR(3)=(MEMBER-FILE.REST-FLAG-11=90) << Online Banking >> #ATTR(5)=(MEMBER-FILE.CONTROL-FLAGS(67)=1) << eStatements >> #ATTR(6)=(MEMBER-FILE.CONTROL-FLAGS(68)=1) << Direct Deposit >> #ATTR(7)=(MEMBER-FILE.CONTROL-FLAGS(59)=1)
Calculating Attributes from SHXREF
Attributes 11-15 are calculated using the SHXREF file. When an attribute is based on a member having specific share products, the SHXREF file is the easiest way to configure the corresponding attribute (and product).
For the above example, the SH_ATTR_NBR column of the SHXREF file is assigned the value 11 (Savings Account) for all rows where the share DESC-ABRV is a savings product. Since attribute 11 is also product 1, the SH_PROD_NBR will be assigned a 1. All Checking Account DESC-ABRVs will be assigned SH_ATTR_NBR=12 and SH_PROD-NBR=2.
Calculating Attributes from LNXREF
Attributes 16-20 are calculated using the LNXREF file. When an attribute is based on a member having specific loan products, the LNXREF file is the easiest way to configure the corresponding attribute (and product).
For the above example, the LN_ATTR_NBR column of the LNXREF file is assigned the value 16 (New Vehicle) for all rows where the share COLLATERAL code qualifies as a new vehicle loan. Since attribute 16 is also product 11, the LN_PROD_NBR will be given the value 11. All Used Vehicle COLLATERAL codes will be assigned LN_ATTR_NBR=17 and LN_PROD-NBR=12.
Calculating Attributes from LOAN-FILE
Attribute 21 (Delinquent Loans) is calculated using LOAN-FILE. The LNXREF cannot be used to assign this attribute since it involves checking the loan balance and due-date. Setting up this attribute is very similar to the MEMBER-FILE attributes. In this case the primary topic is LOAN-FILE and the include file (ILNATTR) looks like this:
* Calculate LOAN-FILE Attributes: * NEWREG DAYS-DELQ:I2 #DAYS-DELQ = %CYMD-DIFF-DAYS(LOAN-FILE.DUE-DATE, #ASOFDATE) << Delinquent Loan >> #ATTR(1)=(%VS-OPEN-LOAN AND LOAN-FILE.BALANCE > 0 AND #DAYS-DELQ >= %VS-DAYS-LOAN-DELQ)
- The macros VS-OPEN-LOAN and %VS-DAYS-LOAN-DELQ are configured in the main Vital Signs macro file.