Skip to content

Kwanil/sap_jco_mapping

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

2 Commits
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

sap_jco_mapping

sap jco connector์—์„œ ํ†ต์‹ ์‹œ java object relation mapping์„ ํ•˜๋Š” ๋ฐฉ๋ฒ•

  • ์†Œ์Šค๋Š” https://github.com/hibersap/hibersap-sapjco3 ์—์„œ ๋‹ค์šด๋ฐ›์•„์„œ import๋ฅผ ํ•œ๋‹ค.

  • ์ด ์•„์ด๋””์–ด๋Š” spring์—์„œ ์žˆ๋Š” resttemplate, asyncresttemplate์˜ ๋ฐฉ์‹์„ ์ฐจ์šฉํ•˜์—ฌ SAP์˜ ํ…Œ์ด๋ธ” ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” java object relation mapping์„ ๊ตฌํ˜„ํ•œ ๊ฒƒ์ด๋‹ค.

  • ์ด ๋กœ์ง์—” ๊ธฐ๋ณธ ์•„์ด๋””์–ด๋งŒ ๊ฐ„๋‹จํžˆ ๊ตฌํ˜„ํ•˜์˜€๊ธฐ ๋•Œ๋ฌธ์—, java generics์˜ super type token์— ๊ด€ํ•œ ๋ถ€๋ถ„์€ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š์•˜๋‹ค. ๋˜ํ•œ, sap์˜ structure๋ถ€๋ถ„๋„ ์ •์ƒ๊ตฌํ˜„ํ•˜์ง€ ์•Š์•˜๋‹ค.

AS-IS

SAP์˜ sample code๋Š” ๊ตฌ๊ธ€ ๋“ฑ์—์„œ ๊ฒ€์ƒ‰ํ•˜์—ฌ ๋ณด๋ฉด ์•„๋ž˜์˜ URL๋“ฑ์ด ๋‚˜์˜จ๋‹ค.

์œ„์˜ ๋กœ์ง์˜ ํ•ต์‹ฌ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์†Œ์Šค์ธ๋ฐ function์˜ Table์„ ํŒŒ๋ผ๋ฏธํ„ฐ ๋ณด๋‚ด๊ณ , ๋ฐ›์•„์„œ iterate๋ฅผ ํ•˜์—ฌ ์ผ์ผํžˆ ๋งคํ•‘์„ ํ•ด์ฃผ๋Š” ๋ฐฉ์‹์ด๋‹ค.

JCoFunction function = destination.getRepository().getFunction("SAP_DATA"); 
JCoTable codes = function.getTableParameterList().getTable("ํ…Œ์ด๋ธ”๋ช…");
List<Map<String, Object>> outputs = new ArrayList<>(); 
for (int i = 0; i < codes.getNumRows(); i++) { 
      codes.setRow(i);    
      Map<String, Object> map = new HashMap<String, Object>();
      map.put("์ปฌ๋Ÿผ1", codes.getString("์ปฌ๋Ÿผ1"));
      map.put("์ปฌ๋Ÿผ2", codes.getString("์ปฌ๋Ÿผ2"));
      map.put("์ปฌ๋Ÿผ3", codes.getString("์ปฌ๋Ÿผ3"));
      //๋ฆฌ์ŠคํŠธ์— ๋‹ด์•„์„œ ์‚ฌ์šฉ
     outputs.add(map);
}
System.out.println(outputs);

TO-BE (Object relation mapping)

๋‚ด๊ฐ€ ๊ตฌํ˜„ํ•œ ์•„์ด๋””์–ด๋Š” ์œ„์˜๋กœ์ง์„ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์‹ฌํ”Œํ•œ ์ฝ”๋“œ๋กœ ๋ฐ”๊ฟ€์ˆ˜์žˆ๊ฒŒํ•˜๋Š”๊ฒƒ์ด๋‹ค.

JCOInput input = JCOInput.of("SAP_DATA", "ํ…Œ์ด๋ธ”๋ช…");
List<HashMap> outputs = template.executeTable(input, HashMap.class);
System.out.println(outputs);

Map์ด ์•„๋‹Œ Object๋„ mapping์ด ๊ฐ€๋Šฅํ•œ๋ฐ, ๊ทธ ์—ฐ๊ฒฐ๊ณ ๋ฆฌ๋Š” @JCOValue์ด๋‹ค. ์œ„์™€ ๋™์ผํ•œ ์†Œ์Šค๋ฅผ Map์ด ์•„๋‹Œ Output Object๋กœ ๊ตฌํ˜„ํ•œ๋‹ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ์ฝ”๋“œ๊ฐ€ ๋  ๊ฒƒ์ด๋‹ค.

@Getter @Setter
class Output {
  @JCOValue("์ปฌ๋Ÿผ1")
  private String type;
  
  @JCOValue("์ปฌ๋Ÿผ2")
  private String year;
  
  @JCOValue("์ปฌ๋Ÿผ3")
  private String name;
  
  @JCOValue(value = "LOGTIME", dateFormat = "yyyy-mm-dd")
  private String logTime;
}

JCOInput input = JCOInput.of("SAP_DATA", "ํ…Œ์ด๋ธ”๋ช…");
List<Output> outputs = template.executeTable(input, Output.class);
System.out.println(outputs);

About

sap jco connector java object relation mapping

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages