HFM深入技术学习系列之四--调用API生成日记账

2024-08-27 14:20

本文主要是介绍HFM深入技术学习系列之四--调用API生成日记账,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

概述

本文描述使用HFM提供的SDK自动生成日记账

介绍

分为三个步骤
1 获得进入HFM的session
2 获得JournalOM
3 使用JournalOM保存日记账

用到的包

fmcommon.jar
fm-web-objectmodel.jar
hssutil.jar

代码示例

获取JournalOM

ISecurityManager tpMNG  = HSSUtilManager.getSecurityManager();
String ssoToken = tpMNG.authenticateUser(USERNAME, PASSWORD);
SessionOM adminSessionOM = new SessionOM();
adminSessionInfo1 = adminSessionOM.createSession(ssoToken, Locale.ENGLISH, HFM_DEV, FINCAPP);
JournalOM adminJournalOM = new JournalOM(adminSessionInfo1);

生成日记账

JSONObject json = (JSONObject) jsonObj;
labels.add((String) json.get("label")) ;
try {journal = journalOM.getJournalByName((String) json.get("label"), (String) json.get("scenario"), (String) json.get("year"), (String) json.get("period"));journalOM.performJournalAction(labels, (String) json.get("scenario"), (String) json.get("year"), (String) json.get("period"), JOURNAL_ACTION.JBA_DELETE);
}
catch (Exception e){System.out.println(e.getMessage());
}
journal.setLabel((String) json.get("label"));
journal.setBalancedType(JOURNAL_BALANCE_TYPE.JBTF_UNBALANCED);
journal.setSecurity((String) json.get("security"));
journal.setType(JOURNAL_TYPE.JTF_REGULAR);
journal.setSingleEntity((String) json.get("singleEntity"));
journal.setSingleParent((String) json.get("singleParent"));
journal.setStatus(JOURNAL_STATUS.JSF_WORKING);
year = new JournalDimension();
period = new JournalDimension();
value = new JournalDimension();
scenario = new JournalDimension();
scenario.setName("Scenario");
scenario.setMember((String) json.get("scenario"));
year.setName("Year");
year.setMember((String) json.get("year"));
period.setName("Period");
period.setMember((String) json.get("period"));
value.setName("Value");
value.setMember((String) json.get("value"));
povs.add(scenario);
povs.add(year);
povs.add(period);
povs.add(value);
JSONArray journalLines = (JSONArray) json.get("lines");
List<JournalLineItem> journalLineItems = new ArrayList<JournalLineItem>();
i=0;
for (Object jsonLineObj : journalLines) {JSONObject jsonLine = (JSONObject) jsonLineObj;entity = new JournalDimension();account = new JournalDimension();icp = new JournalDimension();custom1 = new JournalDimension();custom2 = new JournalDimension();custom3 = new JournalDimension();custom4 = new JournalDimension();journalDimensions = new ArrayList<JournalDimension>();lineItem = new JournalLineItem();entity.setName("Entity");entity.setMember((String) jsonLine.get("entity"));account.setName("Account");account.setMember((String) jsonLine.get("account"));icp.setName("ICP");icp.setMember((String) jsonLine.get("icp"));custom1.setName("Custom1");custom1.setMember((String) jsonLine.get("custom1"));custom2.setName("Custom2");custom2.setMember((String) jsonLine.get("custom2"));custom3.setName("Custom3");custom3.setMember((String) jsonLine.get("custom3"));custom4.setName("Custom4");custom4.setMember((String) jsonLine.get("custom4"));journalDimensions.add(entity);journalDimensions.add(account);journalDimensions.add(icp);journalDimensions.add(custom1);journalDimensions.add(custom2);journalDimensions.add(custom3);journalDimensions.add(custom4);lineItem.setLineItemDimensions(journalDimensions);lineItem.setAmount((String) jsonLine.get("amount"));lineType = (String) jsonLine.get("linetype");if (lineType.equals("dr")) {lineItem.setDebitUnit(DEBIT_CREDIT_UNIT.JE_TYPE_DEBIT);} else {lineItem.setDebitUnit(DEBIT_CREDIT_UNIT.JE_TYPE_CREDIT);}journalLineItems.add(i, lineItem);i++;
}
journal.setPov(povs);
journal.setLineItems(journalLineItems);
journalOM.saveJournal(journal);

这篇关于HFM深入技术学习系列之四--调用API生成日记账的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1111911

相关文章

C#如何调用C++库

《C#如何调用C++库》:本文主要介绍C#如何调用C++库方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录方法一:使用P/Invoke1. 导出C++函数2. 定义P/Invoke签名3. 调用C++函数方法二:使用C++/CLI作为桥接1. 创建C++/CL

Java Stream流使用案例深入详解

《JavaStream流使用案例深入详解》:本文主要介绍JavaStream流使用案例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录前言1. Lambda1.1 语法1.2 没参数只有一条语句或者多条语句1.3 一个参数只有一条语句或者多

Java学习手册之Filter和Listener使用方法

《Java学习手册之Filter和Listener使用方法》:本文主要介绍Java学习手册之Filter和Listener使用方法的相关资料,Filter是一种拦截器,可以在请求到达Servl... 目录一、Filter(过滤器)1. Filter 的工作原理2. Filter 的配置与使用二、Listen

IDEA自动生成注释模板的配置教程

《IDEA自动生成注释模板的配置教程》本文介绍了如何在IntelliJIDEA中配置类和方法的注释模板,包括自动生成项目名称、包名、日期和时间等内容,以及如何定制参数和返回值的注释格式,需要的朋友可以... 目录项目场景配置方法类注释模板定义类开头的注释步骤类注释效果方法注释模板定义方法开头的注释步骤方法注

Python如何自动生成环境依赖包requirements

《Python如何自动生成环境依赖包requirements》:本文主要介绍Python如何自动生成环境依赖包requirements问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录生成当前 python 环境 安装的所有依赖包1、命令2、常见问题只生成当前 项目 的所有依赖包1、

深入理解Apache Kafka(分布式流处理平台)

《深入理解ApacheKafka(分布式流处理平台)》ApacheKafka作为现代分布式系统中的核心中间件,为构建高吞吐量、低延迟的数据管道提供了强大支持,本文将深入探讨Kafka的核心概念、架构... 目录引言一、Apache Kafka概述1.1 什么是Kafka?1.2 Kafka的核心概念二、Ka

springboot项目中常用的工具类和api详解

《springboot项目中常用的工具类和api详解》在SpringBoot项目中,开发者通常会依赖一些工具类和API来简化开发、提高效率,以下是一些常用的工具类及其典型应用场景,涵盖Spring原生... 目录1. Spring Framework 自带工具类(1) StringUtils(2) Coll

MySQL中动态生成SQL语句去掉所有字段的空格的操作方法

《MySQL中动态生成SQL语句去掉所有字段的空格的操作方法》在数据库管理过程中,我们常常会遇到需要对表中字段进行清洗和整理的情况,本文将详细介绍如何在MySQL中动态生成SQL语句来去掉所有字段的空... 目录在mysql中动态生成SQL语句去掉所有字段的空格准备工作原理分析动态生成SQL语句在MySQL

Java调用C++动态库超详细步骤讲解(附源码)

《Java调用C++动态库超详细步骤讲解(附源码)》C语言因其高效和接近硬件的特性,时常会被用在性能要求较高或者需要直接操作硬件的场合,:本文主要介绍Java调用C++动态库的相关资料,文中通过代... 目录一、直接调用C++库第一步:动态库生成(vs2017+qt5.12.10)第二步:Java调用C++

Java利用docx4j+Freemarker生成word文档

《Java利用docx4j+Freemarker生成word文档》这篇文章主要为大家详细介绍了Java如何利用docx4j+Freemarker生成word文档,文中的示例代码讲解详细,感兴趣的小伙伴... 目录技术方案maven依赖创建模板文件实现代码技术方案Java 1.8 + docx4j + Fr