应收、应付、收款、付款等单据都可以生成ERP的日记帐,那么这些模块的关系是如何关联的呢,我们将会解决这个问题。 各个模块与总帐模块的关系,主要是通过子分类帐来进行关联的。 下面的SQL就是总帐与子分类帐的关联关系: SELECT * FROM gl_je_headers jh ,gl_je_lines jl ,gl_import_references gir ,xla_ae_lines xal ,xla_ae_headers xah ,xla.xla_transaction_entities xte WHERE jh.je_header_id = jl.je_header_id AND jl.je_header_id = gir.je_header_id AND jl.je_line_num = gir.je_line_num AND gir.gl_sl_link_id = xal.gl_sl_link_id AND gir.gl_sl_link_table = xal.gl_sl_link_table AND xal.applicaiton_id = xah.applicaiton_id AND xal.ae_header_id = xah.ae_header_id AND xah.applicaiton_id = xte.application_id AND xah.entity_id = xte.entity_id AND xah.entity_code = :p1 AND xah.source_id_int_1 = :p2 其中,:p1代表类型,:p2代表ID值。比如,如果要示应付发票与总帐的关系,那么:p1值为'AP_INVOICES',:p2值为AP_INVOICES_ALL的ID值。 具体的关联关系,可能查看表xla_entity_id_mappings。 注意: 通过上面的SQL,可能查询出重复的代码,这主要是因为在xla_ae_lines行里,可能有一些废弃的行。如何判断xla_ae_lines里的行是否被废弃了呢:在xla_ae_lines表里有一个字段:displayed_line_number,如果这个值小于0,那么就说明这个行被废弃了。所以在使用上面的SQL时,最好添加上条件:xla.displayed_line_number > 0。 在表xla_ae_headers里有一个字段gl_transfer_status_code,如果这个字段的值为Y,那说明这个子分类帐已经过账,当需要判断是否过账的时候,可以判断这个字段的值。