Pénzügyi jelentési fájlok létrehozása a következőn keresztül: Python

Pénzügyi jelentésformátumok létrehozása, beleértve a XBRL és OFX kérés- vagy válaszfájlt 1.03 vagy 2.2 formátumban a Python alapú alkalmazásokban.

 

Aspose.Finance, Python ezen keresztül: .NET egy funkciókban gazdag, bővíthető és könnyen használható pénzügyi jelentések létrehozása és feldolgozása API. A fejlesztők könnyedén létrehozhatnak XBRL példányt a semmiből, valamint hozzáadhatnak sémahivatkozást, kontextust, egységet, elemet, lábjegyzet hivatkozást, szerephivatkozást és ív szerephivatkozás. A API minden funkcióhoz megfelelő osztályt biztosít, például a kontextushoz, a fejlesztők használhatják a ContextPeriod, a ContextEntity és a Context elemeket. Ezenkívül a API támogatja a nyílt pénzügyi csere (OFX) formátumú kérés/válasz létrehozását 1.03 vagy 2.2 formátumban.

Hozzon létre XBRL fájlt elem hozzáadásával

A(z) XBRL fájl létrehozásához és az elem dokumentumhoz való hozzáadásához a folyamat az XbrlDocument osztálypéldány létrehozása. Készítse elő az elem releváns beállításait a megfelelő API osztályok, például a SchemaRef osztály, a fent említett releváns kontextusosztályok és a Concept osztály használatával. Végül határozza meg és inicializálja az elemosztály tulajdonságait, valamint hívja meg a mentési metódust a XBRL fájl lemezre való létrehozásához.

Python Kód XBRL fájl létrehozásához elem hozzáadásával
xbrlDoc = XbrlDocument()
xbrlInstances = xbrlDoc.xbrl_instances
xbrlInstance = xbrlInstances[xbrlInstances.add()]
schemaRefs = xbrlInstance.schema_refs
schemaRefs.add(os.path.join(sourceDir, "schema.xsd"), "example", "http://example.com/xbrl/taxonomy")
schema = schemaRefs[0]
contextPeriod = ContextPeriod(datetime(2020,1,1), datetime(2020,2,10))
contextEntity = ContextEntity("exampleIdentifierScheme", "exampleIdentifier")
context = Context(contextPeriod, contextEntity)
xbrlInstance.contexts.append(context)
unit = Unit(UnitType.MEASURE)
unit.measure_qualified_names.append(QualifiedName("USD", "iso4217", "http://www.xbrl.org/2003/iso4217"))
xbrlInstance.units.append(unit)
fixedAssetsConcept = schema.get_concept_by_name("fixedAssets")
if fixedAssetsConcept is not None:
item = Item(fixedAssetsConcept)
item.context_ref = context
item.unit_ref = unit
item.precision = 4
item.value = "1444"
xbrlInstance.facts.append(item)
xbrlDoc.save(os.path.join(outputDir, "dochavingItem.xbrl"))

Hozzon létre OFX kérés- és válaszfájlokat

A(z) OFX fájlok generálásához a(z) API OfxRequestDocument és OfxResponseDocument osztályokat biztosít, és a fejlesztők könnyen OFX kérés létrehozása és válaszfájlok 1.03 és 2.2 formátumban. Az OfxRequestDocument tulajdonságok inicializálásához a API további osztályokat is biztosít, például a SignonRequest, a FinancialInstitution és a StatementTransactionRequest osztályokat. Hasonlóképpen, az OfxResponseDocument tulajdonságok inicializálásához a API olyan támogató osztályokat biztosít, mint a SignonResponse, StatementTransactionResponse és StatementTransaction. Az alábbiakban mindkét esetre vonatkozó kódrészletek találhatók a megfelelő osztályok használatával.

Python Kód OFX kérési dokumentumok generálásához
ofxResponseDoc = OfxResponseDocument()
ofxResponseDoc.signon_response_message_set_v1 = SignonResponseMessageSetV1()
signonResponse = SignonResponse()
ofxResponseDoc.signon_response_message_set_v1.signon_response = signonResponse
signonResponse.status = Status()
signonResponse.status.code = "0"
signonResponse.status.severity = SeverityEnum.INFO
signonResponse.status.message = "SUCCESS"
signonResponse.server_date = "20200611"
signonResponse.profile_update_date = "20200611"
fi = FinancialInstitution()
fi.organization = "aspose"
fi.financial_institution_id = "1"
signonResponse.financial_institution = fi
signonResponse.session_cookie = "11111111111111111"
ofxResponseDoc.bank_response_message_set_v1 = BankResponseMessageSetV1()
stmtTransResponse = StatementTransactionResponse()
ofxResponseDoc.bank_response_message_set_v1.statement_transaction_responses.append(stmtTransResponse)
stmtTransResponse.transaction_unique_id = "829631324"
stmtTransResponse.status = Status()
stmtTransResponse.status.code = "0"
stmtTransResponse.status.severity = SeverityEnum.INFO
stmtTransResponse.statement_response = StatementResponse()
stmtTransResponse.statement_response.currency = CurrencyEnum.USD
stmtTransResponse.statement_response.bank_account_from = BankAccount()
stmtTransResponse.statement_response.bank_account_from.bank_id = "1111111"
stmtTransResponse.statement_response.bank_account_from.account_id = "1111111111111"
stmtTransResponse.statement_response.bank_account_from.account_type = AccountEnum.CHECKING
stmtTransResponse.statement_response.bank_transaction_list = BankTransactionList()
stmtTransResponse.statement_response.bank_transaction_list.start_date = "20200601000000"
stmtTransResponse.statement_response.bank_transaction_list.end_date = "20200611000000"
transaction1 = StatementTransaction()
transaction1.transaction_type = TransactionEnum.DEBIT
transaction1.posted_date = "20200611000000"
transaction1.transaction_amount = "-12"
transaction1.financial_institution_transaction_id = "1111111111111111111111111"
transaction1.name = "bbbbbbbbbbbbbbbbbbbbbbb"
transaction2 = StatementTransaction()
transaction2.transaction_type = TransactionEnum.CREDIT
transaction2.posted_date = "20200611000000"
transaction2.transaction_amount = "22222.11"
transaction2.financial_institution_transaction_id = "2222222222222222222222222222"
transaction2.name = "wwwwwwwwwwwwwwwwwwwwwwww"
stmtTransResponse.statement_response.bank_transaction_list.statement_transactions.append(transaction1)
stmtTransResponse.statement_response.bank_transaction_list.statement_transactions.append(transaction2)
stmtTransResponse.statement_response.ledger_balance = LedgerBalance()
stmtTransResponse.statement_response.ledger_balance.balance_amount = "+2222.42"
stmtTransResponse.statement_response.ledger_balance.date_as_of = "20200611000000"
stmtTransResponse.statement_response.available_balance = AvailableBalance()
stmtTransResponse.statement_response.available_balance.balance_amount = "+222222.42"
stmtTransResponse.statement_response.available_balance.date_as_of = "20200611000000"
ofxResponseDoc.save(os.path.join(outputDir,"newOfxResponseBankStatement.xml"), OfxVersionEnum.V2X)
ofxResponseDoc.save(os.path.join(outputDir,"newOfxResponseBankStatement.sgml"), OfxVersionEnum.V1X)
Python Kód OFX válaszdokumentumok generálásához
ofxResponseDoc = OfxResponseDocument()
ofxResponseDoc.signon_response_message_set_v1 = SignonResponseMessageSetV1()
signonResponse = SignonResponse()
ofxResponseDoc.signon_response_message_set_v1.signon_response = signonResponse
signonResponse.status = Status()
signonResponse.status.code = "0"
signonResponse.status.severity = SeverityEnum.INFO
signonResponse.status.message = "SUCCESS"
signonResponse.server_date = "20200611"
signonResponse.profile_update_date = "20200611"
fi = FinancialInstitution()
fi.organization = "aspose"
fi.financial_institution_id = "1"
signonResponse.financial_institution = fi
signonResponse.session_cookie = "11111111111111111"
ofxResponseDoc.bank_response_message_set_v1 = BankResponseMessageSetV1()
stmtTransResponse = StatementTransactionResponse()
ofxResponseDoc.bank_response_message_set_v1.statement_transaction_responses.append(stmtTransResponse)
stmtTransResponse.transaction_unique_id = "829631324"
stmtTransResponse.status = Status()
stmtTransResponse.status.code = "0"
stmtTransResponse.status.severity = SeverityEnum.INFO
stmtTransResponse.statement_response = StatementResponse()
stmtTransResponse.statement_response.currency = CurrencyEnum.USD
stmtTransResponse.statement_response.bank_account_from = BankAccount()
stmtTransResponse.statement_response.bank_account_from.bank_id = "1111111"
stmtTransResponse.statement_response.bank_account_from.account_id = "1111111111111"
stmtTransResponse.statement_response.bank_account_from.account_type = AccountEnum.CHECKING
stmtTransResponse.statement_response.bank_transaction_list = BankTransactionList()
stmtTransResponse.statement_response.bank_transaction_list.start_date = "20200601000000"
stmtTransResponse.statement_response.bank_transaction_list.end_date = "20200611000000"
transaction1 = StatementTransaction()
transaction1.transaction_type = TransactionEnum.DEBIT
transaction1.posted_date = "20200611000000"
transaction1.transaction_amount = "-12"
transaction1.financial_institution_transaction_id = "1111111111111111111111111"
transaction1.name = "bbbbbbbbbbbbbbbbbbbbbbb"
transaction2 = StatementTransaction()
transaction2.transaction_type = TransactionEnum.CREDIT
transaction2.posted_date = "20200611000000"
transaction2.transaction_amount = "22222.11"
transaction2.financial_institution_transaction_id = "2222222222222222222222222222"
transaction2.name = "wwwwwwwwwwwwwwwwwwwwwwww"
stmtTransResponse.statement_response.bank_transaction_list.statement_transactions.append(transaction1)
stmtTransResponse.statement_response.bank_transaction_list.statement_transactions.append(transaction2)
stmtTransResponse.statement_response.ledger_balance = LedgerBalance()
stmtTransResponse.statement_response.ledger_balance.balance_amount = "+2222.42"
stmtTransResponse.statement_response.ledger_balance.date_as_of = "20200611000000"
stmtTransResponse.statement_response.available_balance = AvailableBalance()
stmtTransResponse.statement_response.available_balance.balance_amount = "+222222.42"
stmtTransResponse.statement_response.available_balance.date_as_of = "20200611000000"
ofxResponseDoc.save(os.path.join(outputDir,"newOfxResponseBankStatement.xml"), OfxVersionEnum.V2X)
ofxResponseDoc.save(os.path.join(outputDir,"newOfxResponseBankStatement.sgml"), OfxVersionEnum.V1X)