The TapeTrack Billing process uses the following steps:
TMSS10LogStatsExtractDB reads through the TapeTrack history tables and creates Billing extract files within the date range specified when the program is called.
At the completion of the program you will have one .ttstats (TapeTrack Statistics) file for each TapeTrack Customer.
Extract Billing data from last month where:
–R M-1:m-1
is the date range-h “%TMSS10DB%”
is the database locationTMSS10LogStatsExtractDB -R M-1:m-1 -h "%TMSS10DB%"
Output from database with one Customer
US01.ttstats
CUS02 ILTO 20201029000221000000 SLTO LIBR20201029000220000000 HLTO LIBR20201029000000000000 SLTO OFFS20201029000001000000 HLTO OFFS20201029000000000000 ILTO 20201030000221000001 SLTO LIBR20201030000220000001 HLTO LIBR20201030000000000001 SLTO OFFS20201030000001000001 HLTO OFFS20201030000000000001 ILTO 00000000000221000002 SLTO LIBR00000000000440000002 HLTO LIBR00000000000000000002 SLTO OFFS00000000000002000002 HLTO OFFS00000000000000000002
TMSS10LogStatsProcess reads through the .ttstats file and, using a definition file, filters the data, counts and applies the appropriate charges and creates an XML output file.
Add storage charges for:
Add Movement or Transport charges for:
Add Delivery surcharge on non standard delivery times for:
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # AddStorageCharge( # Package Filter, <-- Package Filter # Customer Filter, <-- Customer Filter value e.g. ACME or AC* # Media Filter, <-- Media Filter value e.g. DL or D* or !(AI) # Rep Filter, <-- Repository filter e.g. OFFS # Round Up Factor, <-- Round up factor e.g. if 10 number will be rounded up to nearest 10 # Minumum Units, <-- Minimum units to bill # Threshold, <-- Theshold value, only totals over this value are billed # Cap, <-- Cap Value # Model, <-- Model number # Item Code, <-- Item code string # Customer, <-- Customer string # Description, <-- Description string # Cost, <-- Cost in cents # Continue, <-- continue on and bill next item if appropriate (0=No, !0=Yes) # ); # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # AddStorageChargeItem( "*", "US01", "DLT", "OFFS", 0, 0, 00000, 00000, 0, "$CUSTOMER", "$CUSTOMER2 STORAGE_OFFSITE", "DLT Vaulting Charge", 4, false ); AddStorageChargeItem( "*", "US01", "LTO", "OFFS", 0, 0, 00000, 00000, 0, "$CUSTOMER", "$CUSTOMER2 STORAGE_OFFSITE", "LTO Cartridge Vaulting Charge", 5, false ); # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # AddMovementChargeItem( # Package Filter, <-- Package Filter # Customer Filter, <-- Customer Filter value e.g. ACME or AC* # Media Filter, <-- Media Filter value e.g. DL or D* or !(AI) # From Rep Filter, <-- Repository filter e.g. OFFS # To Rep Filter, <-- Repository filter e.g. LIBR # Round Up Factor, <-- Round up factor e.g. if 10 number will be rounded up to nearest 10 # Minumum Units, <-- Minimum units to bill # Threshold, <-- Threshold value, only totals over this value are billed # Cap, <-- Cap Value # Model, <-- Model number # Item Code, <-- Item code string # Customer, <-- Customer string # Description, <-- Description string # Cost, <-- Cost in cents # Continue <-- continue on and bill next item if appropriate (0=No, !0=Yes) # ); # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # AddMovementChargeItem( "*", "US01", "DLT", "LIBR", "OFFS", 0, 0, 00000, 00000, 0, "$CUSTOMER", "$CUSTOMER2 to Vault", "DLT Transport Charge", 10, false ); AddMovementChargeItem( "*", "US01", "LTO", "LIBR", "OFFS", 0, 0, 00000, 00000, 0, "$CUSTOMER", "$CUSTOMER2 to Vault", "LTO Transport Charge", 10, false ); AddMovementChargeItem( "*", "US01", "DLT", "OFFS", "LIBR", 0, 0, 00000, 00000, 0, "$CUSTOMER", "Vault to $CUSTOMER2", "DLT Transport Charge", 10, false ); AddMovementChargeItem( "*", "US011", "LTO", "OFFS", "LIBR", 0, 0, 00000, 00000, 0, "$CUSTOMER", "Vault to $CUSTOMER2", "LTO Transport Charge", 10, false ); # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # AddJournalChargeItem( # Package Filter, <-- Package Filter # Customer Filter, <-- Customer Filter value e.g. ACME or AC* # Journal Filter, <-- Journal Filter value e.g. 000001 # Round Up Factor, <-- Round up factor e.g. if 10 number will be rounded up to nearest 10 # Minumum Units, <-- Minimum units to bill # Threshold, <-- Theshold value, only totals over this value are billed # Cap, <-- Cap Value # Model, <-- Model number # Item Code, <- Item code string # Customer, <-- Customer string # Description, <-- Description string # Cost, <-- Cost in cents # Continue <- continue on and bill next item if appropriate (0=No, !0=Yes) # ); # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # AddJournalChargeItem( "*", "US01", "00001", 0, 0, 0, 0, 0, "$CUSTOMER", "Delivery Charge", "Express Delivery", 400, false ); AddJournalChargeItem( "*", "US01", "00002", 0, 0, 0, 0, 0, "$CUSTOMER", "Delivery Charge", "Over Night Delivery", 600, false ); AddJournalChargeItem( "*", "US01", "00003", 0, 0, 0, 0, 0, "$CUSTOMER", "Delivery Charge", "Immediate Delivery", 1000, false );