Обзор структуры БД системы

В отличие от более ранних версий iScala хранит данные, как минимум в 2-х базах данных: в системной (по умолчанию ScaSystemDB) и в БД (или нескольких БД) с информацией делового содержания (по умолчанию ScalaDB).

Большинство таблиц имеет старый порядок именования вида MMNNCCYY, где MM – 2-х символьное наименование модуля, например, «GL» – General Ledger (Главная Книга), NN – номер таблицы внутри модуля, например, «06» (GL06 – проводки ГК), CC – код компании, например, «01», YY – финансовый год, например, «09» для годозависимых таблиц и «00» для годонезависимых. Таким образом, можно расшифровать 2 следующих примера:

  • GL060108 – Таблица проводок Главной Книги компании «01» за 2008 финансовый год.
  • SL010800 – Таблица «картотеки» покупателей для компании «08» (годонезависимая таблица).

Для того чтобы узнать название модулей можно заглянуть в системную базу данных в таблицу «ScaFeatures»:

select * from ScaFeatures (nolock)

Результат:

FeatureCode FeatureName Comment
00 System objects Objects that are necessary for basic functionality
AM Asset Management Change FA submodule
CM Contract Management  
DI Direct Invoicing  
GL General Ledger  
HR Resourse Management  
MA Market Database  
MP Material Production Control  
OR Sales Order  
PA Payroll  
PC Purchase Order  
PL Purchase Ledger  
PN Promissory Notes  
PR Project Management  
SC Stock Control  
SL Sales Ledger  
SM Service Order Management  
SO Other objects  
ST Statistics  
SY System Utilities/Office Autom.  
UD User-defined  

Для того чтобы понять назначение таблицы следует заглянуть в таблицу «ScaDBObjects», например, с помощью такого запроса:

select
ObjectName as TableName,
ObjectName + ' - ' + case rtrim(isnull(ExtendedComment,Comment))
	when '' then Comment
	else rtrim(isnull(ExtendedComment,Comment))
end as TableDescription
from ScaDBObjects (nolock)
where left(ObjectName,2)='PL'
order by ObjectName

В качестве результата данного запроса мы получим названия таблиц модуля «PL» (Purchase Ledger – Книга Закупок)

TableName TableDescription
PL01 PL01 — Suppliers
PL03 PL03 — Purchase Ledger Invoices
PL04 PL04 — Purchase Ledger Invoice Journal
PL05 PL05 — Purchase Ledger Payment Journal
PL07 PL07 — Payment Proposal
PL08 PL08 — Purchase Ledger Parameters
PL09 PL09 — Purchase Ledger Automatic Accounting Table
PL10 PL10 — Payment Ledger
PL14 PL14 — Shipping Addresses
PL15 PL15 — Payment Methods
PL16 PL16 — Payment Methods Layouts
PL17 PL17 — VAT Transactions
PL18 PL18 — Withholding Tax Transactions
PL19 PL19 — Suppliers Templates
PL21 PL21 — Purchase Ledger Payments
PL22 PL22 — Payment Terms PL
PL23 PL23 — Payment Terms Descriptions
PL24 PL24 — Tax details for prepayment
PL25 PL25 — Tax details for payment
PL30 PL30 — Check Register
PL44 PL44 — Prepayment Documents
PL45 PL45 — Extended Bank Info
PL46 PL46 — Invoice OCR Payment Reference
PL50 PL50 — Payment Proposal Header
PL51 PL51 — Payment Proposal Lines
PL56 PL56 — Swedish BankGiro, PlusGiro services
PL88 PL88 — Check Printout
PL92 PL92 — Foreign Payment Temp File I/O
PL93 PL93 — Foreign Payment Temp File I/O
PL95 PL95 — Russian VAT wrk
PL96 PL96 — DueDate report
PL97 PL97 — Ledger Statement
PL98 PL98 — EC Tax Reports
PLB1 PLB1 — Transportation Terms
PLB4 PLB4 — Tax note description lines
PLE0 PLE0 — Spain Payment Parameters
PLH3 PLH3 — Recharge Invoice Accounts Payable Header
PLH4 PLH4 — Recharge Invoice Accounts Payable transaction lines
PLH6 PLH6 — Inter-Company Transaction Entry
PLH7 PLH7 — Entities and Amounts for current invoice(Work)
PLHA PLHA — Recharge Invoice Parameters
PLHB PLHB — Recharge Invoice Parameters — Target Company
PLHC PLHC — Work file for entering inter-company transactions
PLHD PLHD — Recharge Invoice Tax amount
PLHE PLHE — Recharge expense amounts
PLHF PLHF — Recharge Amounts
PLHG PLHG — Recharge Invoice Distribution Templates
PLI1 PLI1 — Payment Term Instalments PL Header
PLI2 PLI2 — Payment Term Instalments PL Lines
PLI3 PLI3 — Payment Term Instalments PL
PLIN PLIN — Invoice Based Intrastat PL
PLL1 PLL1 — Supplier Tax Exemptions
PLL2 PLL2 — Supplier Payment Balances
PLL3 PLL3 — Payment Proposal Retentions
PLM5 PLM5 — Bank Account Number for Currency Code
PLR4 PLR4 — PL Reversed Transaction
PLT7 PLT7 — Temp Tax table for autopayments
PLTC PLTC — Work File for Printing Tax Certificate
PLXX PLXX — PLXX Work File
PLXY PLXY — PLXY Work File

Разумеется, большинство пользователей не утруждают себя запросами к базе данных «напрямую», используя взамен «ScaDBConv.exe»:

ScaDBConv.exe

Но так как наша тема посвящена созданию и использованию отчётов MS SQL Server Reporting Services, мы познакомимся с готовым отчётом по таблицам и полям БД iScala, построенным с помощью этого инструмента:

Внешний вид отчёта по таблицам и полям БД iScala

Надо сказать, что разработчики серьёзно потрудились и снабдили некоторые поля расширенными комментариями, объясняющими бизнес логику того или иного возможного значения, логично этим было бы воспользоваться, не правда ли?

Содержание: