2017-12-06 22 views
0

질문 제목으로, Logic Apps에서 적절한 작업을 찾고 폴더를 만들려고합니다. 이 조치는 비즈니스 규칙에 따라 디렉토리 당 한 번 여러 번 실행됩니다. Logic App의 의도는 사용자의 요구에 맞는 템플리트 폴더 구조를 준비하기위한 것이기 때문에이 폴더에 파일이 생성되지 않습니다.Azure Logic App을 통해 SharePoint Online에서 폴더를 만드는 데 사용할 수있는 작업은 무엇입니까?

공식 문서에는 create file, create itemlist folder 동작이 있음을 확인했습니다. 그들은 거기에 수도 있습니다 (나는 찾을 수없는) 폴더를 만들 수있는 행동을 제안합니다.

그런 조치가 없으면 일부 SharePoint Online API를 사용해야 할 수도 있지만 최후의 해결책이됩니다.

답변

1

나는 SharePoint - CreateFile 동작을 통해 디렉토리를 생성 할 수있었습니다. 파일 생성 작업의 부작용을 통해 디렉토리를 만드는 것은 확실히 더러운 해킹입니다 (btw, a comment on MS suggestion site에서 영감을 얻음). 이 버그/기능은 문서화되지 않았으므로 프로덕션 환경에서이 버그/기능을 사용하는 것은 좋지 않습니다.

내 문제로 인해 파일을 저장하지 않고 SharePoint에서 디렉토리를 만들어야하는 경우 App Logic의 추가 단계를 사용해야합니다. Create File 조치로 제공되는 Id을 사용하여 파일을 삭제하십시오.

다음은TestTarget 문서 라이브러리를 기존 에서 folderCreatedAsSideEffect라는 디렉토리를 만들려고 한 경우 JSON 결과는 아래와 같이됩니다.

"actions": { 
    "Create_file": { 
     "inputs": { 
      "body": "@triggerBody()?['Name']", 
      "host": { "connection": { "name": "@parameters('$connections')['sharepointonline']['connectionId']" } }, 
      "method": "post", 
      "path": "/datasets/@{encodeURIComponent(encodeURIComponent('https://MY.sharepoint.com/LogicApps/'))}/files", 
      "queries": { 
       "folderPath": "/TestTarget/folderCreatedAsSideEffect", 
       "name": "placeholder" 
      } 
     }, 
     "runAfter": {}, 
     "type": "ApiConnection" 
    }, 
    "Delete_file": { 
     "inputs": { 
      "host": { "connection": { "name": "@parameters('$connections')['sharepointonline']['connectionId']" } }, 
      "method": "delete", 
      "path": "/datasets/@{encodeURIComponent(encodeURIComponent('https://MY.sharepoint/LogicApps/'))}/files/@{encodeURIComponent(body('Create_file')?['Id'])}" 
     }, 
     "runAfter": { 
      "Create_file": [ 
       "Succeeded" 
      ] 
     }, 
     "type": "ApiConnection" 
    } 
}, 

...

+0

대신 사용할 수있는 REST API에 대해 설명합니다. https://docs.microsoft.com/en-us/sharepoint/dev/apis/rest/working-with-folders-and-files-with-rest –

1

올바른지, 지금까지 SharePoint 커넥터는 폴더 관리 작업을 지원하지 않습니다.

이제 가장 좋은 옵션은 API 또는 함수 응용 프로그램에서 SharePoint API 또는 클라이언트 라이브러리를 사용하는 것입니다.

+0

그 부작용으로 폴더를 생성하는 비 기존 폴더를 대상'CreateFile' 동작을 사용할 수 있을까? 또는 대상 폴더가 없기 때문에 이러한 작업이 실패합니까? 나는 싸고 더러운 것을 알고 있지만, API를 다루는 것보다 여전히 간단하다. –

+0

시도하지 않았습니다. 다시보고하고보고하십시오. :) –

+0

관심이 있다면 더러운 해킹 기반 솔루션을 게시했습니다. SharePoint 고유 커넥터의 잘못된 동작을 사용합니다. 내 프로젝트가 (프로토 타이핑 단계) 시점에서, 내가 사용할 수있는 충분하고 간단한 해결책이다. 생산을 위해 중대하지 않은. –