[Power Automate] 목록 값을 파이썬 코드로 넘기는 방법

2023. 10. 19. 06:24IT/Power Automate Desktop

안녕하세요. 쿠루가이입니다.

Power Automate Desktop(이하, PAD)에서는 파이썬 코드를 직접 실행할 수 있는 기능이 있습니다. 파이썬을 언제 사용하냐면 PAD에서 없는 기능을 구현할 때 유용하게 쓸 수 있는데요. 저 같은 경우는 익스체인지 서버에 메일을 보낼 때 표를 넣고 싶어졌습니다. 그래서 일반 텍스트로 보내는것이 아니라 HTML 형식으로 보내야 했습니다.

그런데 아쉽게도 PAD에는 그런 기능이 없습니다. 있더라도 엄청 복잡하게 만들어야 하는데요. 이럴 때 파이썬 스트립트를 사용하면 됩니다.

HTML로 표를 만들려면, 특정 목록이 필요한데요. 하지만 PAD에서 작성한 목록(List)을 파이썬 코드로 직접 넘겨주는것은 불가능합니다. 이때에는 PAD에서 구분할 수 있는 문자열로 합친 다음에 파이썬 코드에서 분리(split)하는 방법으로 해야만 합니다. 오늘은 이것에 대해서 알아볼게요.

먼저 아래와 같은 목록을 만들고, 샘플 데이터를 넣습니다.

그리고 텍스트 참가 라는 것을 끌고 와서 목록의 아이템을 ,로 구분해서 JoinedText에 넣습니다. 이러면 파이썬 스트립트로 전달할 문자열을 만들 수 있습니다.

실제 어떻게 저장되는지 확인해보겠습니다.

JoinedText에 ','로 구분된 문자열이 보이시죠? 이렇게 표시되면 성공입니다.

 

그리고 이걸 파이썬에서 split를 해서 리스트로 저장해두면 원하는 결과를 얻을 수 있습니다.

headers = ['이름', '등급']
html = ['<html>', '<head>','</head>','<body>','<table>']

# Regular string concatenation for header
header_html = '<tr>'
for header in headers:
    header_html += '<th>' + header + '</th>'
header_html += '</tr>'
html.append(header_html)

names = "%JoinedText0%"
groups = "%JoinedText1%"

NameList = names.split(',')
GradeList = groups.split(',')

# data 변수 생성
data = []
for name, grade in zip(NameList, GradeList):
    row = [name, grade]
    data.append(row)

# Regular string concatenation for data
for row in data:
    row_html = '<tr>'
    for cell in row:
        row_html += '<td>' + cell + '</td>'
    row_html += '</tr>'
    html.append(row_html)

# 종료 태그
html.extend([
    '</table>',
    '</body>',
    '</html>'
])

html_result = '\n'.join(html)
print(html_result)

 

HTML 출력 결과는 다음과 같습니다.

이름등급
쿠루가이80
레이첼70

 

어때요? PAD에서 PYTHON으로 리스트를 넘기게 되었죠? PAD가 얼른 파이썬3를 지원하면 더 많은 일을 할텐데 아직 파이썬2까지만 지원해서 제약사항이 많습니다. 그래도 간단한것은 이렇게 응용할 수 있으니 적극 사용하면 좋을 것 같습니다.