카테고리 아카이브: InfoPath 2007 // 폼 서버

빠른 조회: Sharepoint에서 Splistitem에서 직접 InfoPath XML 읽기

난 어디 InfoPath 양식에서 첨부 파일을 추출 해야 하는 프로젝트에서 작업. InfoPath 양식을 구문 분석에 대 한 몇 가지 좋은 자원 (XML 파일은, 그래서 그것은 실제로 매우 쉽다).

프로젝트를 구축 했다 하는 동안, InfoPath 양식을 다운로드 하 고 나의 현지 하드 드라이브에 저장 하 여 시작. C# 코드는 직접 읽고. 그러나, InfoPath 양식을 SharePoint 양식 라이브러리 안에 살고 정말. 난 조금 반 마음 도서관에서 직접 읽는 방법을 검색 했 고 거의 포기, 어떤 경우에 로컬 임시 디렉터리에 저장 하는 양식을 있고 거기에서 그것을 읽을합니다. 그러나, 라이브러리에서 직접 읽을 수 있습니다 그 농구를 통해 갈 필요가 있다. 이 작은 조각은 보여 줍니다 어떻게:

/// 여기 클래스 정의 물건, 포함 하 여:
개인 SPFile mySharePointFile; /* SPList의 일부 */
// 더 많은 코드는 여기에서 간다와 클래스의 메서드 내에서 우리는:
XmlTextReader textReader;
textReader = 새로운 내용 XmlTextReader(mySharePointFile.OpenBinaryStream());

textReader.WhitespaceHandling = WhitespaceHandling.없음;

textReader.Read();

// 노드 값을 가진다면

하는 동안 (textReader.Read())
{

..., 등등 등등...

그들은 중요 한 비트 위에 우리는 OpenBinaryStream 통해 직접 InfoPath를 읽을 수 있다 이다() XmlTextReader에 생성자에 매개 변수로 SPFile에 호출 하는 메서드. 그것은 위대한 작품.

</끝>

내 블로그를 구독.

에 지 저 귐에 나를 따르라합니다 http://www.twitter.com/pagalvin

테크노 태그:

프로그래밍 방식으로 InfoPath 양식에서 첨부 파일을 추출 (그들의 이름을 포함 하 여!)

InfoPath 및 워크플로 활용 하 여 클라이언트에 대 한 비용 항목 솔루션을가지고. 승인 과정에서 한 시점에서, 스스로 첨부 파일 뿐만 아니라 좋은 InfoPath 데이터의 모든 이메일을 생성할 필요가 있도록 (한숨) 누군가가 그 데이터를 수동으로 다시 Oracle 데이터베이스 응용 프로그램에 키.

그것은 매우 어려운 하거나 InfoPath 양식을 구문 분석. 첨부 파일을 처리 하는 방법을 몰 랐 어 요, 그러나. 한 시간이 나 두 인터넷 주위를 파고의 후 (영원!) 이 기사를 발견: http://support.microsoft.com/kb/892730

그것은 제공 하는 몇 가지 편리한 코드 형태로 노드에서 첨부 파일을 추출 하. (당신은 여전히 노드와 모든 것을 찾이 필요가, 하지만 그건 그냥 XML 구문 분석).

첨부 파일은 base64 인코딩 및 원래 그냥 추출 경로 내려 갔다 알고는 base64 데이터, 그것을 해독 하 고 그것을 저장. 그러나, 신속 하 게 위에서 언급 한 문서를 찾을 때까지 파일 이름 자체를 얻을 하는 방법을 몰 랐 어 요 깨달았다.

난 실제로 꽤 일찍 발견 했다, 하지만 그것의 다중 인격에 의해 연기 되었다. 한 손에, 문서 * 말한다 * InfoPath에 대 한 좋은 2007. 아직, Visual Studio에 대 한 모든 코드와 지시는 2003 그리고 InfoPath에 대 한 참조 2003.

히 프 라인, 제공 문서 코드 나를 위해 잘 작동 (지금까지). 난 내 InfoPath 양식을 얻을 수 있습니다., 그것을 구문 분석할 수 있습니다, 내가 찾아서 첨부 파일을 해독할 수 및 나의 이름을 알고합니다. 더 수 있는 하나 하나의 생명의 요청?

</끝>

내 블로그를 구독.

에 지 저 귐에 나를 따르라합니다 http://www.twitter.com/pagalvin

테크노 태그: ,,

SharePoint 환경의 태 드 건강 수 있다는 걱정이 되 면, 당신이 그 문제를 해결 하는 데 도움이 하자 건강 체크.

FBA 환경에서 Infopath와 함께 승인 그룹 관리

Infopath를 사용 하 여 폼 기반 인증에서을 구현 해야 하는 비용 승인 프로세스를가지고 (FBA) forms services를 사용 하 여 환경 (웹 기반 InfoPath).

거기에 두 개의 승인 그룹 및 프로세스가 작동 하는이 같은:

  • 사용자는 경비 보고서를 작성 하 고 승인을 위해 제출.
  • 그 첫 번째 수준 승인자 그룹에 이메일을 유발.
  • 첫 번째 수준 승인자 리뷰 및 승인 또는 거부 보고서.
  • 첫 번째 수준의 사람 그것을 승인 하는 경우, 시스템에 두 번째 수준 승인자를 알립니다..

사물의 InfoPath 측면에, 나는 다른 섹션 숨기기/표시 되는 사용자 승인 그룹 중 하나의 구성원 인지에 따라.

FBA 환경 사용자 이름에서() 함수는 항상 빈 반환 합니다., 슬프게도. 내가 무슨 짓을 했는지를 설정 한 사용자 지정 목록 "승인 그룹" 이라고.

목록에 열을 추가 하지 마십시오.

때 양식을 열어합니다, 이 같은 규칙은:

image

여기는 "" 필드의 값 설정:

image

이 기본적으로 말: 승인 그룹 사용자 지정 목록 쿼리 및 필터에 대 한 보고 쿼리 하 행 어디로 타이틀의 가치 = "북유럽".

어떤 값을 반환 하는 경우, 그런 다음 현재 사용자가 해당 그룹의 구성원. 문자열 길이가 0 보다 큰 있기 때문에 해당 값을 포함 하는 것이 난.

승인 그룹 목록에서 개별 항목을 확보 하 여 루프를 닫습니다. 실행 시간에, 현재 사용자가 없는 경우 해당 항목 다음 쿼리에 대 한 적절 한 보안 액세스 그것을 반환 하지 않습니다., 문자열 길이가 0이 될 것입니다 그리고 지금 당신은 현재 사용자는 해당 그룹의 일부가 아닙니다.. 폼에서 필요에 따라 그 사실을 사용할 수 있습니다..

이것은 슈퍼 간단한 기사. 난 시간이 촉박 해요 또는 더 많은 정보를 제공 하는 것.

FBA 환경에서 내가 어떻게 관련은 몰라. 이 아마 비 FBA 환경에서 잘 작동 하지만 난 경우가 도움이 될 것 이라고 상상할 수 있는.

</끝>

내 블로그를 구독.

에 지 저 귐에 나를 따르라합니다 http://www.twitter.com/pagalvin

테크노 태그: ,

InfoPath // "처리 되지 않은 예외 System.Xml.XmlException 양식을 렌더링 하는 경우에 대 한 설명: 예기치 않은 끝의 파일 이름을 구문 분석 하는 동안 발생 했습니다.. “

오늘 InfPath 폼에 근무 하 고 옛 친구에 대 한 실행, "처리 되지 않은 예외를 렌더링할 때 양식 System.Xml.XmlException: 예기치 않은 끝의 파일 이름을 구문 분석 하는 동안 발생 했습니다. "

이 나에 게 오래 전 일이 고 정확 하 게 내가 그것을 해결 하기 위해 무슨 짓을 했는지 몰라. 솔직히, 새 프로젝트를 전환 되었습니다 했다 그리고이 하나 해결을 본 적이 생각 (내 교체는 두통을 다뤄야 했다). 그것은 문제의 악마 기억 나요. 나 그것을 다루는 여러 실패 한 일을 보냈다. 그 이후, 지난 한 해 동안 적어도 한 번 MSDN 포럼에 올이 결코 진짜로 그것에 대 한 대답을 보았다을 보았다합니다.

내가 공을 오늘 그리고 다행히도이 시간 , 난 그냥 폼에 변화를 만들 었. 그 변화는 밖으로 백업 하 고 문제가 멀리 갔다. 그것은 밝혀 지 만들 수 있다는 한 울타리의 양식 서버 쪽에서 구문 분석 오류를 생성 하는 방식으로 InfoPath 디자이너를 사용 하 여 서식 파일에서.

내 경우에는, 문제는 이러한 단계에 의해 발생 했다:

  1. 텍스트 필드와 데이터 원본에 새 요소 추가.
  2. 폼에 놓습니다.
  3. 드롭 다운 목록으로 그것의 표시 변경.
  4. SharePoint 사용자 지정 목록에서 해당 값을 끌어 목록 아래로 방울에 게.

이러한 단계를 문제가 발생할 경우 몰라 아니면, 어떻게든 데이터 목록 자체에 문제가. 내가 조금 실험 및 downt를 못 수 내가 볼 거 야 그 어떤 자세한 정보와 함께 매개 변수.

</끝>

내 블로그를 구독.

에 지 저 귐에 나를 따르라합니다 http://www.twitter.com/pagalvin

테크노 태그:

InfoPath 양식 내부 개발자 노트 포함

InfoPath 양식의 세계에 살고 아직도 하 고 폼을 그 "작은" 변화 중의 하나를 만들 필요가 있는, 불행 하 게도, 2 주 전 그것을 채택 하는 명명 규칙을 나누기. 나 혼자 생각, "누군가가 이제와 말에서 올해이 이걸 보면, ' 폴 생각 했다? 정돈 하 여, 그의 명명 규칙은 일리가 없다!”

이 폼에 대 한 뷰를 만들 수 실현 그리고, 다시 한 번, 그 수 있었나 모두 함께이 같은 것을 실현. InfoPath 양식 같은 "개발자 노트" 보기를 추가:

image

사용자가 보기에 액세스할 수 없습니다 있도록 양식을 구성한 따라서, 그것은 디자인 보기에서 InfoPath 클라이언트와 볼 수만. 이제 기분이 좀 몇 가지 미래의 알 수 없는 개발자 내 폼 보고 나에 대해 생각 나쁜 생각에 대 한 접종. 휴!

</끝>

내 블로그를 구독.

에 지 저 귐에 나를 따르라합니다 http://www.twitter.com/pagalvin

테크노 태그:

InfoPath 보기 관리

InfoPath 단계를 통해 갈 것 어디, 블루의, 잔뜩 폼을 만드는 오전. 내 손가락 도구를 잘 사용 하는 방법을 학습과 다음 9 달 가뭄을 통해 갈 고 다시 온통 그것을 배울 수 있다.

InfoPath 위상의 중간에 있어 그리고 내가 조회 많은 InfoPath 양식을 만드는. 한 가지 당신이 아마 Infopath는 통지 2007 클라이언트는 알파벳 순서로 보기를 보여 줍니다.. 이것은 진짜 성가신 몇 번. 내 최고의 기술을이 요즘 그들은 항상 내가 원하는 순서 대로 표시 되도록 보기 이름에 숫자를 추가 하는 것입니다., 여기에서 보이는 것과 같이:

image

나 하 고 있었다이 모두 함께 하는 것이 좋겠다.

</끝>

내 블로그를 구독.

에 지 저 귐에 나를 따르라합니다 http://www.twitter.com/pagalvin

테크노 태그:

InfoPath 양식 서비스도, 폼 기반 인증 (FBA) 고유한 파일 이름

일부 InfoPath 양식 FBA 환경에서 MOSS에서 이번 주에 노력 하 고 배 웠 있 었 어 요, 배포에 갔을 때 한 FBA와 프로덕션 환경에 양식 영역을 사용자 이름() 기능 함수 작동 하지 않습니다.. 고유한 파일 이름을 생성 하 그것을 사용 했다.

음, 함수 FBA 환경에서 작동 하지 않습니다 (적어도, 안 상자의). 그리고, 반사에 따라, 계획 했던 방식으로 사용자 이름을 사용 하지 않았을 보장 고유한 파일 이름을 어떤 이벤트.

지금 사용 하는 내 솔루션() 함수 및 폼의 로드에 발생 하는 규칙. 때 빈 나 데이터 요소에 파일 이름 할당:

image

image

이 방법의 장점은 파일 이름은 한 번만 설정 됩니다.. (화면에 그것을 보여주지 않습니다., 하지만 "myFilename"이 비어만 불 규칙에 조건을 넣어합니다). 파일 이름을 데이터 원본 수준에서 설정 하는 데 사용. 일반적으로, 뭔가 할 것 (나쁜) 이것처럼:

image

그 문제는 월요일에 양식을 사용자 A와 사용자 B가 화요일에 변경 하는 경우, 두 사용자가 서로 다른 사용자 이름으로 저장 한 이후 두 개의 다른 형태의 끝날 거 야.

그래서, FBA 수 일반적으로 Infopath와 특히 짜증나 서, 그것은 작지만 정말 중요 한 기술적 세부 사항 및 접근 난 그렇지 못했을 다시 내게 했다!

</끝>

내 블로그를 구독.

에 지 저 귐에 나를 따르라합니다 http://www.twitter.com/pagalvin

테크노 태그:

신속 하 고 간단: InfoPath 양식의 읽기 전용 확인 (MOSS에서 InfoPath Forms Services)

이 같은 일반적인 비즈니스 시나리오는:

  • 사용자는 InfoPath 양식을 작성합니다.
  • 양식 전송.
  • 끄기 맞이 하는 장기 실행 워크플로 프로세스.
  • 워크플로가 실행 되는 동안, 우리 폼의 내용을 변경할 수 없도록 하려는.

Office.microsoft.com 예제 별도 "보기를 만드는 방법을 설명 합니다." 읽기 전용으로 전체 보기 표시. 이것은 실행할 수 있는 접근 하지만 효과적으로 동일한 폼의 두 전체 버전을 만들었습니다 고 합니다 지금 그들을 동기화 수동으로 단점이 있다. 편집 가능한 뷰에 필드를 추가 하는 경우, 다음 또한 편집할 수 없는 보기에 추가 해야 합니다.. 시간이 지남에, 다른 개발자와, 일부 차이가 있을 수 있습니다..

이 대체 어떤 경우에 더 나은 작동 수 있습니다.:

  • "IsEditable" 라는 폼에 새 필드를 추가 합니다..
  • True로 기본값 설정.
  • MOSS 게시 때 홍보.
  • 워크플로의, Iseditble의 값을 false로 설정.
  • 폼으로 돌아가서.
  • 규칙 추가 "따라 폼의 열기", Iseditable이 false 저장 단추 사용 안 함.

이 방식의 단점은 모든 필드를 여전히 화면에 편집 가능한 수. 사용자는 그들 실제로 콘텐츠를 변경할 수 있습니다. 잘못 된 인상을 얻을 수 있습니다.. 양식을 비활성화는 일부 텍스트에 넣어을 줄일 수 있습니다., 페이지의 상단에 걸쳐 큰 붉은 글자에 가능성이.

한 프로젝트에서, "워크플로 상태를 만든" 보기. 워크플로 진행, 그것은 특정 상태 필드를 양식에서 승진 했다 업데이트. 사용자는 폼을 열 때, "열기 폼" 규칙 자동 전환 보기와 사용자 했다 좋은 작은 요약 상태.

</끝>

내 블로그를 구독.

InfoPath 양식에서 사용자 ID를 기반으로 하는 보기를 전환

우리는 개발 했다 여러 뷰를 지 원하는 새로운 고용 된 InfoPath 양식 / 온 보 딩 프로세스. 회사는 새로운 사람을 고용 하는 때, IT 부서 및 다른 그룹 행동을 취할 필요 (급여를 설정, 적절 한 응용 프로그램에 액세스할 수 있도록, 책상을 찾습니다, 등). 각 기능에 대 한 폼 양식의 다른 보기에 사용.

이 회사에서, 비즈니스 프로세스에 관련 된 사람들의 대부분은 IT에 정통한, 그래서 폼에 액세스할 때, 그들의 기본 뷰는 메뉴"" 그들의 특정 기능에 직접 버튼 보기. 그러나, 우리는 새로운 고용의 직접적인 관리자에 대 한 것 들을 단순화 하는 데 필요한. 이 사용자는 IT 관련 물건 볼 수 없습니다.. 사실, 그녀 폼의 다만 1 개의 보기를 참조 해야 하 고 심지어 다른 뷰를 참조 하는 옵션을가지고.

우리의 경우, 직접 예의 형식으로 관리자의 계정에 직접 연결 된 연락처 선택기 (항상 "사용자 선택 전화 걸려 있는" 몇 가지 이유).

단계는 다음과 같습니다.:

1. 디자인 모드에서, 도구-이동> 양식 옵션-> 열기 및 저장.

2. "규칙"을 선택.

3. 그 작업은 "보기 전환 새로운 규칙 만들기" 그리고 그 조건을 활용 사용자 이름() 함수.

사용자 이름() "단순 반환 합니다." 사용자 이름에 도메인 없이. 자격 증명 "domainpagalvin"으로 SharePoint에 로그인 하는 경우, 사용자 이름() "pagalvin"를 반환 합니다..

연락처 선택기 3 비트의 연락처에 대 한 정보를 제공합니다.. "AccountID" 이 시나리오에 대 한 가장 유용한 부분은. 유일 하 게도 약간에 게 도전의 연락처 선택기 (내 환경에서 어쨌든) 도메인 및 사용자 ID를 반환 합니다., 마찬가지로 "domainpagalvin". 이 AccountID 이후 직선-앞으로 평등의 조건 하에서 우리를 방지합니다 ("domainpagalvin") 사용자 이름 같은 결코 것 이다() ("pagalvin").

우리가이 사용 하 여 주위를 얻을 수 있는 "포함" 연산자: AccountID는 사용자 이름 포함().

우리가 취할 수 있는 더 그것 그리고 전 보류 사용자 이름 앞에서 하드 코딩 된 도메인() 우리의 일치 검사 하 고 가양성의 위험을 제거 하는 함수는 연산자를 포함.

우리 정말 처럼 했 그들의 광고 보안 그룹 구성원에 따라 다른 사용자에 대 한 보기를 자동으로 전환. 예를 들어, 때 "그것은 분석의 구성원" 그룹 형식 액세스, IT 분석 보기로 자동 전환. 우리는 그것을 구현 하는 시간이 없, 하지만 내 첫번째 생각은 "IsMemberOfActiveDirectorySecurityGroup"와 같은 메서드는 웹 서비스를 만드는, 사용자 이름에 전달() 다시 true 또는 false를 반환 하 고. 누군가에 어떤 다른, 더 영리한 아이디어? 우리는 그 결정을 만들기 위해 InfoPath에서 활용할 수 있는 모든 SharePoint 기능이 있다?

</끝>

테크노 태그: