Python with Gitlab, Pycharm, Html and Flask

이미지
요즘 Python이 대세라고 해서 하나 만들어봤다 길이 길어질까봐 자세하게는 설명은 생략하고자 하니.. 혹시 답글로 문의 주시면..아마도..시간 날때 답을 드리지 않을까 생각합니다 이전 글을 보시면 현재 SOA를 운영하며 Gitlab을 사용중인데, Gitlab 에서 제공하는 API 및 Library를 Python과 연동하여 Html Page에 Flask를 이용 한 Example 이다 <Do It !!> 1. Local PC에 Pycharm Free Version 설치 2. Pycharm에서 Test 이름의 Project 생성 3. 아래와 같이 html 및 .py 파일 생성 4. index.html Source ->  Gitlab Projects 및  Milestone 버튼을 누르면,    href 를 통하여 index.py(python 프로그램)에서 설정 한     @app.route ( '/Projects/' )  및  @app.route ( '/Milestone/' )    를 각각 실행 한다 <!doctype html > < head >< title >Gitlab</ title > < meta charset =utf-8 > </ head > < body > < h1 >SOA-Gitlab</ h1 > < button > < a href ="/Projects/" >Gitlab Projects</ a ></ button > < button > < a href ="/Milestone/" >Milestone</ a ></ button > </ body > 5. project.html Source -> index.py의     

가계부 어플 엑셀(Excel) 자동화

이미지
와이프님께서 편한 가계부 란 어플로 돈 관리 중이신데.. 아시다시피..돈 관리가 정말 힘든거 같다.. 난 편하게 용돈 받아서 사는지라.. 회사 다니시고 집에 와서 집안일도 좀 하시고 자기 전 가계부 정리하시는 와이프님을 보니.. 넘 안쓰러워서..엑셀로 자동화 하는걸 개발해 드렸다 할줄 아는게 모..이런건지라..ㅎㅎ      (고객님=와이프님 은 정말 요구 사항이 많으시더군요..lol) 와이프님의 돈 관리 방식에 따라 자동화 되는데.. 아마도 돈 관리 방식이 다 비슷하지 않을까....Yo !!  그래서 힘들게 돈 관리 하시는 분들께 공개 해 드립니다!! (뱅크샐러드란 어플도 사용 가능하다 !! 다른 어플도 내용만 맞춰서 기입 하면 아마 다 되지 않을까 싶다 !!) [하는 방법- 편한 가계부 어플 기준 임 ] 0. 아래 엑셀 파일 다운로드 엑셀(Excel) 파일   (자동화 시켜주는 엑셀 임) ->  자동화 엑셀(Excel) 파일에 예시로 입력을 해 놓았는데 어떻게 돌아 가는지..한번 보시면 좋을 것 같네요..      0-1. 수입-고정-List / 대출-List 등등 Sheet 와 "입력" Sheet 내용 비교      0-2. 정리 버튼 클릭 어떻게 돌아가는지 감을 잡으셨으면... 1. 평소에는 가계부 어플로 돈 관리      (난 안써봐서 잘 모르지만..추측하건데.. 카드 같은 걸 사용하면 결재 내역 알람이 오는데..      그 알람을  가계부 어플에 지정한 룰(분류) 대로 몬가 기록 하는거 같음) 2. 편한 가계부 어플에서 제공하는 엑셀을 다운로드     (뱅크 샐러드도 엑셀 다운로드를 제공 함) 4. 편한 가계부 엑셀 내용을 위 자동화 시켜주는 엑셀파일에 "입력" Sheet 에 복사      (예시) 5. 수입-고정-List / 대출-List 등등 Sheet에 취향에 맞게 기입 -> "입력" Sheet 의 소분류와 내용으로 정리 된다 6. 년도 입력 후 정리 버튼 클릭 (년도 별로 정리

Oracle Weblogic(SOA) UMS Adapter Transaction

이미지
When you use UMS( User Messaging Service ) Adapter, you should consider transaction. In Oracle's docs..you can find this.. UMS does not participate in any global transactions. Note that the UMS Adapter does not support XA Transactions on the Outbound message transactions. Please refer to bellow picture. You can get it easily. (BPEL send data to Global Transaction Database and UMS - Email Adapter) This means that UMS adapter can not working with global transaction. Many thanks :)

Oracle SOA for Refresh SAP JCO Adapter RFC Cache

SAP RFC is too strong !! Why I recommend SAP EAI(XI,PI,PO) with SAP ERP(ECC) is that.. -> https://eaixipipo.blogspot.com/2018/08/why-sap-eai.html I think SAP Proxy is better than SAP RFC. Almost of all EAI's solutions can connect SAP ERP(ECC) by SAP JCO adapter.  Sometimes, if SAP ERP(ECC)'s RFC structure was changed, EAI should do something. It could be refresh SAP JCO adapter. SAP EAI have above things. Thanks Google :) In this post, I introduce how to refresh SAP RFC structure on Oracle SOA. Before I introduce that..Oracle must give main solutions !! Shortly, you can refer as following as steps.. Step 1. Open the sapjco3.jar file. (I used Jd-gui) Step 2. Open JCoRepository.class in the jar file. Step 3-1. (Refresh SAP RFC function) Use  removeFunctionTemplateFromCache and then, Use  getFunctionTemplate Step 3-2. (Refresh SAP RFC function's table -> Structure) Use  removeRecordMetaDataFromCache and then, Use  getRecordMetaData I will share detail information next ti

Gitlab CI/CD - Make Stage by Branch Name

이미지
Gitlab을 현재 SOA와 연결해서 사용 중인데 Branch 이름으로 Stage를 분개해야 할 상황이 생겼다 (아래 링크는 Gitlab 과 EAI관련 Posting 임) 링크 :  EAI with Gitlab 이번 포스팅은 Branch 생성 시 Branch Name에 특정 문구가 있을 시 별도 Stage가 생성되는것을 공유 드리고자 한다 Gitlab의 CI/CD를 사용하려면 gitlab-ci.yml 을 이용해야하며, Pipeline에 Stage 별로 Job이 생성 된다 예를 들어보자 1. gitlab-ci.yml 파일 생성 stages:   - deploy   - approve   - deploy_prd deploy_imsi:   stage: deploy   tags:    - Integration   script:    - echo "Deploy"   when : manual deploy_pi_test:   stage: deploy   tags:    - Integration   script:    - echo "Deploy"   when : manual deploy_qas:   stage: deploy   tags:    - Integration   script:    - echo "Deploy"    when : manual     deploy_test:   stage: deploy   tags:    - Integration   script:    - echo "Deploy"   when : manual   approve:   stage: approve   tags:    - Integration   script:    - echo "Approve"   when : manual     deploy_big:   stage: deploy_prd   tags:    - Integration   script:    - echo "Deploy PRD"  

Oracle SOA(EAI) Rest Adapter Access-Control-Allow-Origin

이미지
When you use rest api getting data(JSON) from SOA(EAI) or something on web browser like Chrome, you may get error as following as.. Access to ---- at 'URL----' from origin 'null' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource Why..? Security Issue!! .. Thanks Google :P For this error, you should use property as following as.. rest.binding.http.Access-Control-Allow-Origin : * For example on SOA BPEL bellow picture.. It could not be difficult using this on other solution's adapter. Or.. you could set this property in server, if you do not care security.. Thanks~~ :)

Decode Base64 in SOA XSLT Mapping

1. Add  xmlns:dc64="http://www.oracle.com/XSL/Transform/java/oracle.soa.common.util.Base64Decoder in xsl:stylesheet (root). 2. Mapping <tns:Target Field> <xsl:value-of select="dc64:decode(Source Field)"/> </tns:Target Field> Very Easy :)

Oracle SOA(EAI) G1GC

이미지
<Environment> ■ SOA Version : Oracle Cloud SOACS 12.2.1.4 (Market Place) ■ java version 1.8.0_261 ■ Java Memory Garbage Collection Type : G1GC ----------------------------------------------------------------------------------------------------- In this post, I will compare between  Parallel  GC and G1 GC for Oracle SOA(EAI). For this, you need to know something as bellow.. EAI - Enterprise Architecture Integration What is Java Memory Garbage Collection (GC)? - Memory management - Delete unused memory automatically Java Memory Garbage Collection Types - Serial Garbage Collector - Parallel Garbage Collector -> Default GC below 1.9 - CMS Garbage Collector - G1(Garbage First) Garbage Collector -> Default GC above 1.9 GC types - Minor and Major GC During GC - Stop the World : A ll application threads are stopped ----------------------------------------------------------------------------------------------------- Let's start!! Parallel   Garbage Collector Logic Shortly, Memor

Oracle SOA(EAI) HA(High-availability) Configuration

이미지
I will share this posting about Oracle SOA(EAI) HA(High-availability) Configuration. I'm not sure this is perfect for HA, but I hope this will help for you. I configured the HA for SOA in Oracle Cloud. There are two case for the HA. Case 1 . With Web Server Case 1 . Without Web Server Both of them are working well. (It's just of my thought but I tested many of times) Web Servers can redirect interface message to another, if one of managed servers is shut down. However, web servers should be managing point. So... In my point, you can use this URL on load balance.   -> http://IP:Port/soa-infra/services/isSoaServerReady I think it's enough for the HA even though health check interval is 1000 ms. (Min interval is 1000 ms in Oracle Cloud LB ). This posting is the last in this year(2020). Merry Christmas and Happy New Year !!

EAI Interface with Gitlab

이미지
Oracle Cloud SOA(SOACS) 구축 프로젝트를 하며, Gitlab을 이용하였습니다 통칭 Git 이라고 하며, 그 중 Gitlab이란 오픈 소스 소프트웨어를 사용했습니다 (물론, Free Version Gitlab을 사용) EAI만 10년 넘게 경력을 가지고 있는데, Git을 통해 한 건 이번이 처음이였는데, EAI를 사용하는 사람들에게 강력하게 추천 드립니다 !!! 이번 Posting은 EAI Interface with Gitlab 입니다 :) EAI와 Gitlab을 접목 시킨것에 대해 소개하기 전에, 간단하게 Git에 대해 설명 드리자면.. Git이란? 1. 분산형 버전 관리 시스템 (DVCS) 2. Issue Tracker 3. CI/CD (지속적 통합 및 배포) 4. Wiki 5. Label 6. API 제공 7. Milestones 입니다. 자세한 사항은 Googling Go Go Go ! 그럼 EAI와 Gitlab을 어떻게 접목 시켰는지 소개 드립니다 !!! 1. 분산형 버전 관리 시스템 (DVCS) -> Gitlab은 Repository라는 항목이 있습니다     EAI의 개발 소스를 Gitlab의 Repository와 동기화(Clone) 하여 사용 합니다     Repository의 최상위 Branch는 Master이며, 버전 관리를 위해 Master에      소스를 Commit & Push하여 사용 합니다 -> Git Branch (개별 작업)     EAI는 특성상 Interface마다 개발 소스가 다릅니다     그래서, 개인적으로 생각 한 방법이 Interface마다 Master 에서 Branch를 생성해서     사용하는게 좋을 것 같다고 생각합니다 2. Issue Tracker -> Git에는 Issue를 생성하여 Tracker를 할 수 있습니다     Issue 하나가 Interface 하나로 생성하여 사용하는게 좋습니다 -> Interface Issue를 생성하여, Source 와 Targe