ವರ್ಗ ಆರ್ಕೈವ್ಸ್: InfoPath 2007 // ಫಾರ್ಮ್ಸ್ ಸರ್ವರ್

InfoPath ರಲ್ಲಿ ಕೇಸ್ ಸೂಕ್ಷ್ಮವಲ್ಲದ ಹೋಲಿಕೆ

ನಾನು ಒಂದು ಲೇಖನ ಬರೆದರು SharePointBriefing.com and they put it up live today.

ಇಲ್ಲಿ ಟೀಸರ್ ಇಲ್ಲಿದೆ:

image

ಪರಿಶೀಲಿಸಿ.

</ಕೊನೆಯಲ್ಲಿ>

ನನ್ನ ಬ್ಲಾಗ್ ಚಂದಾದಾರರಾಗಿ.

ನಲ್ಲಿ ಟ್ವಿಟ್ಟರ್ ನನ್ನನ್ನು ಅನುಸರಿಸಿ http://www.twitter.com/pagalvin

ನನ್ನ ಟ್ಯಾಗ್ಗಳು:

ತ್ವರಿತ ಹಿಟ್: ಶೇರ್ಪಾಯಿಂಟ್ ಒಂದು SPListItem ನೇರವಾಗಿ InfoPath ಮದುವೆ ಓದುವಿಕೆ

I’m been working on a project where I need to extract attachments from an InfoPath form. There are some good resources for parsing InfoPath forms (ಇದು ಕೇವಲ XML ಕಡತಗಳಾಗಿದ್ದು, ಆದ್ದರಿಂದ ವಾಸ್ತವವಾಗಿ ತುಂಬಾ ಸುಲಭ).

ನಾನು ಯೋಜನೆಯನ್ನು ನಿರ್ಮಿಸುವ ಸಂದರ್ಭದಲ್ಲಿ, I started by downloading an InfoPath form and saving it to my local hard drive. My c# code was reading directly from that instance. ಹೇಗಾದರೂ, the InfoPath forms are really living inside a SharePoint forms library. I did a little half hearted searching to find out how to read it directly from the library and almost gave up, in which case I would have saved the form to a local temp directory and read it from there. ಹೇಗಾದರೂ, there’s no need to go through those hoops as you can read it directly from the library. This little snippet shows how:

/// ಇಲ್ಲಿ ವರ್ಗ ವ್ಯಾಖ್ಯಾನ ಸ್ಟಫ್, ಸೇರಿದಂತೆ:
ಖಾಸಗಿ SPFile mySharePointFile; /* ಒಂದು SPList ಭಾಗ */
// ಇನ್ನಷ್ಟು ಕೋಡ್ ಇಲ್ಲಿ ಮತ್ತು ನಾವು ವರ್ಗದ ವಿಧಾನವನ್ನು ಒಳಗೆ ಹೋಗುತ್ತದೆ:
XmlTextReader textReader;
textReader = ಹೊಸ XmlTextReader(mySharePointFile.OpenBinaryStream());

= textReader.WhitespaceHandling WhitespaceHandling.ಯಾವುದೂ ಇಲ್ಲ;

textReader.Read();

// ನೋಡ್ ಮೌಲ್ಯವನ್ನು ಹೊಂದಿದ್ದಲ್ಲಿ

ಸಮಯ (textReader.Read())
{

… and so on and so forth …

ಮೇಲೆ ಅವರು ಪ್ರಮುಖ ಬಿಟ್ ನಾವು OpenBinaryStream ಮೂಲಕ ನೇರವಾಗಿ InfoPath ಓದಬಹುದು ಎಂಬುದು() method call on the SPFile as a parameter to the constructor on XmlTextReader. It works great.

</ಕೊನೆಯಲ್ಲಿ>

ನನ್ನ ಬ್ಲಾಗ್ ಚಂದಾದಾರರಾಗಿ.

ನಲ್ಲಿ ಟ್ವಿಟ್ಟರ್ ನನ್ನನ್ನು ಅನುಸರಿಸಿ http://www.twitter.com/pagalvin

ನನ್ನ ಟ್ಯಾಗ್ಗಳು:

ಸರಣಿಬದ್ಧವಾಗಿ InfoPath ಫಾರ್ಮ್ಸ್ ಗೆ ಲಗತ್ತುಗಳು ಬೇರ್ಪಡಿಸಲಾಗುತ್ತಿದೆ (ಅವರ ಹೆಸರುಗಳು ಸೇರಿದಂತೆ!)

I have an expense entry solution for a client that leverages InfoPath and workflow. At one point during the approval process, ನಾನು ಉತ್ತಮ InfoPath ಡೇಟಾವನ್ನು ಮತ್ತು ಲಗತ್ತುಗಳನ್ನು ತಮ್ಮನ್ನು ಹೊಂದಿರುವ ಇಮೇಲ್ ರಚಿಸುವ ಅಗತ್ಯವಿದೆ (ತೋಡಿಕೋ) ಯಾರಾದರೂ ಒಂದು ಒರಾಕಲ್ ಡೇಟಾಬೇಸ್ ಅಪ್ಲಿಕೇಶನ್ ಒಳಗೆ ದತ್ತಾಂಶ ಹಾಗು ಕೈಯಾರೆ ಮರು ಕೀಲಿಯ ತೆಗೆದುಕೊಳ್ಳಬಹುದು.

It’s not very difficult to get at or parse the InfoPath form. I didn’t know how to handle the attachments, ಹೇಗಾದರೂ. After an hour or two of poking around the Internets (ಒಂದು ಶಾಶ್ವತತೆ!) ನಾನು ಈ ಲೇಖನ ಕಂಡು: http://support.microsoft.com/kb/892730

It provide some handy code to extract the attachment from a node in the form. (ನೀವು ಇನ್ನೂ ನೋಡ್ ಮತ್ತು ಎಲ್ಲಾ ಕಂಡುಹಿಡಿಯಬೇಕು, ಆದರೆ ಕೇವಲ ಮದುವೆ ಪಾರ್ಸಿಂಗ್ ಇಲ್ಲಿದೆ).

ನಾನು ಬಾಂಧವ್ಯ Base64-ಎನ್ಕೋಡ್ ಮಾಡಿದ ಎಂದು ತಿಳಿದಿದೆ ಮತ್ತು ನಾನು ಮೂಲತಃ ಕೇವಲ Base64 ದಶಮಾಂಶ ಹೊರತೆಗೆಯುವ ಪಥವನ್ನು ಕುಸಿಯಿತು, decoding it and saving it. ಹೇಗಾದರೂ, ನಾನು ಬೇಗ ನಾನು ಹೇಳಿದ ಲೇಖನ ಪತ್ತೆಯಾಗುವವರೆಗೂ ಫೈಲ್ ಹೆಸರು ಸ್ವತಃ ಹೇಗೆ ತಿಳಿದಿರಲಿಲ್ಲ ಅರಿತುಕೊಂಡ.

ನಾನು ವಾಸ್ತವವಾಗಿ ಎಂದು ಸಾಕಷ್ಟು ಆರಂಭಿಕ ಸಿಕ್ಕಿತ್ತು, ಆದರೆ ನಾನು ಅದರ ಒಡಕು ವ್ಯಕ್ತಿತ್ವ ಮೂಲಕ ಆಫ್ ಇರಿಸಲಾಗಿತ್ತು. ಒಂದೆಡೆ, the article *says* it’s good for InfoPath 2007. ಇನ್ನೂ, ಕೋಡ್ ಮತ್ತು ಸೂಚನೆಗಳನ್ನು ವಿಷುಯಲ್ ಸ್ಟುಡಿಯೋ ಬಗ್ಗೆ ಎಲ್ಲಾ 2003 ಮತ್ತು InfoPath ಉಲ್ಲೇಖಗಳನ್ನು 2003.

ಬಾಟಮ್ ಲೈನ್, ಒದಗಿಸಿದ ಲೇಖನ ನನಗೆ ಚೆನ್ನಾಗಿ ಕೆಲಸ ನಿಗದಿಪಡಿಸಲಾಗಿದೆ ಕೋಡ್ (ಇಲ್ಲಿಯವರೆಗೆ). I can get my InfoPath form, ನಾನು ಪಾರ್ಸ್ ಮಾಡಬಹುದು, I can find and decode the attachment and I know its name. What more can one ask of one’s life?

</ಕೊನೆಯಲ್ಲಿ>

ನನ್ನ ಬ್ಲಾಗ್ ಚಂದಾದಾರರಾಗಿ.

ನಲ್ಲಿ ಟ್ವಿಟ್ಟರ್ ನನ್ನನ್ನು ಅನುಸರಿಸಿ http://www.twitter.com/pagalvin

ನನ್ನ ಟ್ಯಾಗ್ಗಳು: ,,

ನಿಮ್ಮ ಶೇರ್ಪಾಯಿಂಟ್ ಪರಿಸರಕ್ಕೆ ಅನಾರೋಗ್ಯಕರ ಒಂದು ತದ್ ಎಂದು ಚಿಂತಿತರಾಗಿದ್ದರು ಆಗಿದ್ದಲ್ಲಿ, ನನಗೆ ನೀವು ಸರಿಪಡಿಸಲು ಸಹಾಯ ಅವಕಾಶ ಎಂದು ಒಂದು ಆರೋಗ್ಯ ಪರೀಕ್ಷೆಯೊಂದಿಗೆ.

ಒಂದು FBA ಎನ್ವಿರಾನ್ಮೆಂಟ್ InfoPath ಜೊತೆ ಅನುಮೋದನೆ ಗುಂಪುಗಳು ವ್ಯವಸ್ಥಾಪಕ

ನಾನು ದೃಢೀಕರಣ ಆಧಾರಿತ ರೂಪಗಳಲ್ಲಿ InfoPath ಉಪಯೋಗಿಸಿ ಕಾರ್ಯಗತಗೊಳಿಸಲು ಅಗತ್ಯವಿರುವ ಒಂದು ಖರ್ಚು ಅನುಮೋದನೆ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಹೊಂದಿರುತ್ತದೆ (FBA) ರೂಪಗಳು ಸೇವೆಗಳನ್ನು ಬಳಸಿ ಪರಿಸರ (ವೆಬ್ ಆಧಾರಿತ InfoPath).

ಎರಡು ಅನುಮೋದನೆ ಗುಂಪುಗಳು ಮತ್ತು ಪ್ರಕ್ರಿಯೆಯನ್ನು ಈ ರೀತಿಯ ಕೆಲಸ:

  • ಬಳಕೆದಾರ ಒಂದು ಖರ್ಚಿನ ವರದಿ ಔಟ್ ತುಂಬುತ್ತದೆ ಮತ್ತು ಅನುಮೋದನೆಗೆ ಇದು ಸಲ್ಲಿಸುತ್ತಾನೆ.
  • ಆ ಮೊದಲ ಮಟ್ಟದ ಅನುಮೋದಕ ಗುಂಪಿಗೆ ಇಮೇಲ್ ಪ್ರಚೋದಿಸುತ್ತದೆ.
  • ಮೊದಲ ಮಟ್ಟದ ಅನುಮೋದಕ ವರದಿಯನ್ನು ಪರಿಶೀಲಿಸುವ ಮತ್ತು ಒಪ್ಪಿಗೆ ಅಥವಾ ನಿರಾಕರಿಸುವ.
  • ಮೊದಲ ಮಟ್ಟದ ವ್ಯಕ್ತಿಯ ಅನುಮತಿ ವೇಳೆ, ವ್ಯವಸ್ಥೆಯ ಎರಡನೇ ಮಟ್ಟದ ಅನುಮೋದಕ ಸೂಚನೆ.

ವಸ್ತುಗಳ InfoPath ಕಡೆ, ನಾನು ಬಳಕೆದಾರ ಆ ಅನುಮೋದನೆ ಗುಂಪುಗಳ ಒಂದು ಸದಸ್ಯ ಎಂದು ಆಧಾರದ ಮೇಲೆ ಕಾಣುತ್ತದೆ / ಮರೆಮಾಡು ವಿವಿಧ ವಿಭಾಗಗಳನ್ನು ಹೊಂದಿವೆ.

ಒಂದು FBA ಪರಿಸರದಲ್ಲಿ ಬಳಕೆದಾರಹೆಸರು() ಫಂಕ್ಷನ್ ಖಾಲಿ ಹಿಂದಿರುಗಿಸುತ್ತದೆ, ದುಃಖದಿಂದ. What I’ve done is set up a a custom list called “Approval Groups”.

ನಾನು ಪಟ್ಟಿಗೆ ಯಾವುದೇ ಹೆಚ್ಚುವರಿ ಕಾಲಮ್ಗಳನ್ನು ಸೇರಿಸಬೇಡಿ.

ರೂಪ ಅಪ್ ತೆರೆದುಕೊಂಡಾಗ, ಈ ರೀತಿಯ ಒಂದು ನಿಯಮವನ್ನು ಹೊಂದಿದೆ:

image

"ಒಂದು ಕ್ಷೇತ್ರದ ಮೌಲ್ಯವನ್ನು" ಇಲ್ಲಿದೆ:

image

ಈ ಮೂಲತಃ ಹೇಳಿದರು ಇದೆ: ಅನುಮೋದನೆ ಗುಂಪು ಕಸ್ಟಮ್ ಪಟ್ಟಿಯನ್ನು ಪ್ರಶ್ನಿಸಿ ಮತ್ತು ಅಲ್ಲಿ ಶೀರ್ಷಿಕೆ ಮೌಲ್ಯದ = "NORDIC" ಯಾವುದೇ ಸಾಲು ಹುಡುಕುವುದರಿಂದ ಆ ಪ್ರಶ್ನೆಗೆ ಫಿಲ್ಟರ್.

ಯಾವುದೇ ಮೌಲ್ಯವನ್ನು ಹಿಂದಿರುಗಿದರೆ, then the current user is a member of that group. I know it contains that value because the string length is greater than zero.

Close the loop by securing the individual items in the Approval Group list. At run-time, ಪ್ರಸ್ತುತ ಬಳಕೆದಾರ ಆ ಐಟಂಗೆ ಸೂಕ್ತ ಭದ್ರತೆ ಪ್ರವೇಶವನ್ನು ಹೊಂದಿಲ್ಲ ವೇಳೆ ನಂತರ ಪ್ರಶ್ನೆಗೆ ಇದು ಹಿಂತಿರುಗುವುದಿಲ್ಲ, string-length will be zero and now you know the current user is not part of that group. You can use that fact as needed in the form.

This is a super brief write-up. I’m pressed for time or I’d provide more detail.

I don’t know how relevant it is that I’m in an FBA environment. This would probably work well in a non-FBA environment but I can imagine cases where this would be useful.

</ಕೊನೆಯಲ್ಲಿ>

ನನ್ನ ಬ್ಲಾಗ್ ಚಂದಾದಾರರಾಗಿ.

ನಲ್ಲಿ ಟ್ವಿಟ್ಟರ್ ನನ್ನನ್ನು ಅನುಸರಿಸಿ http://www.twitter.com/pagalvin

ನನ್ನ ಟ್ಯಾಗ್ಗಳು: ,

InfoPath // ರಚನೆಯಲ್ಲಿ System.Xml.XmlException ಅರ್ಪಿಸಲಾಯಿತು ಮಾಡಿದಾಗ "ನಿಭಾಯಿಸದ ತೊಡಕು ಒಂದು ವಿವರಣೆ: ಕಡತದ ಅನಿರೀಕ್ಷಿತ ಅಂತ್ಯ ಪಾರ್ಸಿಂಗ್ ಹೆಸರು ಸಂಭವಿಸಿದೆ ಸಂದರ್ಭದಲ್ಲಿ. "

ನಾನು InfPath ರಚನೆಯಲ್ಲಿ ಇಂದು ಕೆಲಸ ಮತ್ತು ಹಳೆಯ ಸ್ನೇಹಿತ ವಿರುದ್ಧ ಓಡಿತು, ರಚನೆಯಲ್ಲಿ System.Xml.XmlException ಅರ್ಪಿಸಲಾಯಿತು ಮಾಡಿದಾಗ "ನಿಭಾಯಿಸದ ತೊಡಕು: ಕಡತದ ಅನಿರೀಕ್ಷಿತ ಅಂತ್ಯ ಪಾರ್ಸಿಂಗ್ ಹೆಸರು ಸಂಭವಿಸಿದೆ ಮಾಡುವಾಗ. "

This happened to me a long time ago and I don’t know what exactly I did to resolve it. Honestly, ನಾನು ಒಂದು ಹೊಸ ಯೋಜನೆಗೆ ಪರಿವರ್ತಿಸುವುದರಿಂದ ಎಂದು ಭಾವಿಸುತ್ತೇನೆ ಮತ್ತು ಈ ಒಂದು ನಿರ್ಧರಿಸಲಾಯಿತು ನೋಡಿರುವುದಿಲ್ಲ (ನನ್ನ ಬದಲೀ ಎಂದು ತಲೆನೋವು ಎದುರಿಸಲು ಹೊಂದಿತ್ತು). ನಾನು ಸಮಸ್ಯೆ ದೆವ್ವದ ನೆನಪಿಸುತ್ತಾರೆ. ನಾನು ಯಶಸ್ವಿಯಾಗದ ಹಲವಾರು ದಿನಗಳ ವ್ಯವಹರಿಸುವಾಗ ಕಾಲ. ಅಂದಿನಿಂದ, ಈ ಕೊನೆಯ ವರ್ಷದಲ್ಲಿ ಒಮ್ಮೆಯಾದರೂ MSDN ಫೋರಮ್ಸ್ ಬರಲು ಕಾಣಬಹುದು ಮತ್ತು ನಿಜವಾಗಿಯೂ ಇದು ಒಂದು ಉತ್ತರವನ್ನು ಕಂಡಿತು ಎಂದಿಗೂ ಬಂದಿದೆ.

ನಾನು ಅದೃಷ್ಟವಶಾತ್ ಇಂದು ಮತ್ತು ಈ ಬಾರಿ ಅದು ಹಿಟ್ , ನಾನು ಸ್ವರೂಪಕ್ಕೆ ಒಂದು ಬದಲಾವಣೆಯನ್ನೂ ಮಾಡಿದ. ನಾನು ಬದಲಾವಣೆ ಸರಿದರು ಮತ್ತು ಸಮಸ್ಯೆ ದೂರ ಹೋದರು. It turns out that it’s possible to create a from template using InfoPath Designer in such a way that it generates a parse error on the forms server side of the fence.

ಪ್ರಕರಣದಲ್ಲಿ, ಸಮಸ್ಯೆ ಈ ಕ್ರಮಗಳನ್ನು ಉಂಟಾಗುತ್ತದೆಂದು:

  1. ಒಂದು ಪಠ್ಯ ಕ್ಷೇತ್ರ ಒಂದು ದಶಮಾಂಶ ಮೂಲಕ್ಕೆ ಒಂದು ಹೊಸ ಅಂಶ ಸೇರಿಸಿ.
  2. ರೂಪ ಮೇಲೆ ಡ್ರಾಪ್.
  3. ಪಟ್ಟಿ ಡ್ರಾಪ್ ಡೌನ್ ಅದನ್ನು ತಂದೆಯ ಪ್ರದರ್ಶನ ಬದಲಿಸಿ.
  4. ಒಂದು ಶೇರ್ಪಾಯಿಂಟ್ ಕಸ್ಟಮ್ ಪಟ್ಟಿಯಿಂದ ತನ್ನ ಮೌಲ್ಯಗಳು ಎಳೆಯಲು ಪಟ್ಟಿ ಡ್ರಾಪ್ ಡೌನ್ ಹೇಳಿ.

ಆ ಕ್ರಮಗಳನ್ನು ಸಮಸ್ಯೆ ಅಥವಾ ಬಹುಶಃ ಕಾರಣವಾಗಬಹುದು ವೇಳೆ ನನಗೆ ಗೊತ್ತಿಲ್ಲ, ಹೇಗೋ ಪಟ್ಟಿಯನ್ನು ಸ್ವತಃ ದಶಮಾಂಶ ಸಮಸ್ಯೆ. I’m going to experiment a bit and see if I can nail downt he parameters of this with any more detail.

</ಕೊನೆಯಲ್ಲಿ>

ನನ್ನ ಬ್ಲಾಗ್ ಚಂದಾದಾರರಾಗಿ.

ನಲ್ಲಿ ಟ್ವಿಟ್ಟರ್ ನನ್ನನ್ನು ಅನುಸರಿಸಿ http://www.twitter.com/pagalvin

ನನ್ನ ಟ್ಯಾಗ್ಗಳು:

ನಿಮ್ಮ InfoPath ಫಾರ್ಮ್ಸ್ ಇನ್ಸೈಡ್ ಡೆವಲಪರ್ ಟಿಪ್ಪಣಿಗಳು ಎಂಬೆಡ್

ನಾನು ಇನ್ನೂ InfoPath ಫಾರ್ಮ್ಸ್ ವಿಶ್ವದಲ್ಲಿ ವಾಸಿಸುವ ನಾನು ಮತ್ತು ನಾನು ಒಂದು ರಚನೆಯಲ್ಲಿ ಆ "ಸಣ್ಣ" ಬದಲಾವಣೆಗಳ ಒಂದು ಮಾಡಲು ಅಗತ್ಯವಿದೆ, ಶೋಚನೀಯವಾಗಿ, breaks a naming convention I adopted with it two weeks ago. I thought to myself, "ಯಾರಾದರೂ ಈಗ ಒಂದು ವರ್ಷ ಈ ವಸ್ತುವನ್ನು ನೋಡಲು ಮತ್ತು ಹೇಳಲು ಹೋಗುತ್ತದೆ, 'ಏನು ಪಾಲ್ ಯೋಚಿಸುತ್ತಿದ್ದನು? By Jove, ತನ್ನ ಹೆಸರಿಸುವ ಕ್ರಮವು ಯಾವುದೇ ಸಮಂಜಸವೇ!"

ನಾನು ನಾನು ಈ ಐದು ರೂಪ ಮೇಲೆ ವೀಕ್ಷಿಸಿ ರಚಿಸಲು ಎಂದು ಅರಿತುಕೊಂಡ ಮತ್ತು, ಮತ್ತೊಮ್ಮೆ, realized that I could have been doing something like this all along. I added a “Developer Notes” view to the InfoPath form as such:

image

ಬಳಕೆದಾರರು ವೀಕ್ಷಣೆಗೆ ಪಡೆಯಿರಿ ಮತ್ತು ಆದ್ದರಿಂದ ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ ನಾನು ರೂಪ ಕಾನ್ಫಿಗರ್ ಮಾಡಿದ, it’s only visible with the InfoPath client in design view. Now I feel a little inoculated against some future unknown developer looking at my form and thinking bad thoughts about me. Phew!

</ಕೊನೆಯಲ್ಲಿ>

ನನ್ನ ಬ್ಲಾಗ್ ಚಂದಾದಾರರಾಗಿ.

ನಲ್ಲಿ ಟ್ವಿಟ್ಟರ್ ನನ್ನನ್ನು ಅನುಸರಿಸಿ http://www.twitter.com/pagalvin

ನನ್ನ ಟ್ಯಾಗ್ಗಳು:

InfoPath ವೀಕ್ಷಣೆಗಳು ವ್ಯವಸ್ಥಾಪಕ

ನಾನು InfoPath ಹಂತಗಳು ಅಲ್ಲಿ ಮೂಲಕ ಹೋಗಲು ತೋರುತ್ತದೆ, ನೀಲಿ ಔಟ್, I’m crafting a bunch of forms. My fingers learn how to use the tool well and then I go through nine month drought and have to learn it all over again.

ನಾನು ಒಂದು InfoPath ಹಂತದ ಮಧ್ಯದಲ್ಲಿ ಮನುಷ್ಯ ಮತ್ತು ನಾನು ವೀಕ್ಷಣೆಗಳು ಬಹಳಷ್ಟು ಜೊತೆ InfoPath ರೂಪಗಳನ್ನು ಸೃಷ್ಟಿಸುತ್ತದೆ ಬಾಗುತ್ತೇನೆ. ನೀವು ಬಹುಶಃ ಗಮನಕ್ಕೆ ಒಂದು ವಿಷಯ ಎಂದು InfoPath 2007 client shows views in alphabetical order. This is a real nuisance some times. My best technique these days is to prepend a number to the view name so that they always show in the order I want, ಇಲ್ಲಿ ವಿವರಿಸಲಾಗಿದೆ ಮಾಹಿತಿ:

image

I wish I had been doing this all along.

</ಕೊನೆಯಲ್ಲಿ>

ನನ್ನ ಬ್ಲಾಗ್ ಚಂದಾದಾರರಾಗಿ.

ನಲ್ಲಿ ಟ್ವಿಟ್ಟರ್ ನನ್ನನ್ನು ಅನುಸರಿಸಿ http://www.twitter.com/pagalvin

ನನ್ನ ಟ್ಯಾಗ್ಗಳು:

InfoPath ಫಾರ್ಮ್ Sevices, ಗೃಹಾಧಾರಿತ ದೃಢೀಕರಣ ರಚಿಸುತ್ತದೆ (FBA) ಮತ್ತು ವಿಶಿಷ್ಟ ಕಡತದ ಹೆಸರುಗಳು

ನಾನು ಈ ವಾರ ಒಂದು FBA ಪರಿಸರದಲ್ಲಿ MOSS ರೂಪುಗೊಳ್ಳುತ್ತದೆ ಕೆಲವು InfoPath ಕೆಲಸ ಮತ್ತು ಕಲಿತ ನಾವು, ನಾನು FBA ವಲಯವಿಲ್ಲದೆ ನಿರ್ಮಾಣ ಪರಿಸರಕ್ಕೆ ರೂಪಗಳು ನಿಯೋಜಿಸಲು ಹೋದಾಗ ಬಳಕೆದಾರಹೆಸರು() function function does not work. I was using it to generate unique file names.

ಬಾವಿ, ಆ ಕಾರ್ಯ ಒಂದು FBA ಪರಿಸರದಲ್ಲಿ ಕೆಲಸ ಮಾಡುವುದಿಲ್ಲ (ಕನಿಷ್ಠ, ಬ್ಲ್ಯಾಕ್ ಬಾಕ್ಸ್ ಹೊರಗೆ). ಮತ್ತು, ಪ್ರತಿಬಿಂಬದ ಮೇಲೆ, ನಾನು ಯೋಜಿಸಿದ್ದರು ರೀತಿಯಲ್ಲಿ ಬಳಕೆದಾರಹೆಸರು ಬಳಸಿಕೊಂಡು ಯಾವುದೇ ಕ್ರಿಯೆಯನ್ನು ಒಂದು ಅನನ್ಯ ಫೈಲ್ ಹೆಸರು ಭರವಸೆ ಮಾಡಿರಲಿಲ್ಲ.

ನನ್ನ ಪರಿಹಾರ ಈಗ ಬಳಸಲು ಆಗಿತ್ತು() function and a rule that fires on loading of the form. I assign the file name to data element when it’s blank:

image

image

The advantage of this approach is that the file name is set only once. (ನಾನು ಸ್ಕ್ರೀನ್ ಶಾಟ್ ಅದನ್ನು ತೋರಿಸುವುದಿಲ್ಲ, ಆದರೆ "myFilename" ಖಾಲಿ ಮಾತ್ರ ಬೆಂಕಿಯ ಆಡಳಿತದ ಮೇಲೆ ಸ್ಥಿತಿಯನ್ನು ಪುಟ್). I used to set the file name at the data source level. Typically, ನಾನು ಏನೋ ಮಾಡುತ್ತಿರಲಿಲ್ಲ (ಕೆಟ್ಟ) ಈ ರೀತಿಯ:

image

ಆ ಸಮಸ್ಯೆಯನ್ನು ವೇಳೆ ಬಳಕೆದಾರರು ಸೋಮವಾರ ರೂಪ ತೆರೆಯುತ್ತದೆ ಮತ್ತು ಬಳಕೆದಾರ ಬಿ ಮಂಗಳವಾರ ಇದು ಬದಲಾಗುತ್ತದೆ ಎಂಬುದು, ಎರಡು ಬೇರೆ ಬೇರೆ ಬಳಕೆದಾರರು ಬೇರೆ ಬಳಕೆದಾರ ಹೆಸರುಗಳು ಇದನ್ನು ಉಳಿಸಿದ ನಂತರ ನೀವು ಎರಡು ವಿಭಿನ್ನ ರೂಪಗಳು ಅಂತ್ಯಗೊಳ್ಳುತ್ತಿತ್ತು ಮಾಡುತ್ತೇವೆ.

ಆದ್ದರಿಂದ, FBA ಮಾಹಿತಿ ಕಿರಿಕಿರಿ ವಿಶೇಷವಾಗಿ ಸಾಧಾರಣವಾಗಿ ಮತ್ತು InfoPath ಜೊತೆ ಆಗಿರಬಹುದು ಮಾಹಿತಿ, ಇದು ನಾನು ಇಲ್ಲದಿದ್ದರೆ ಮಾಡಿದ ಎಂದು ಮರು ಆಲೋಚಿಸುತ್ತೀರಿ ಒಂದು ಸಣ್ಣ ಆದರೆ ನಿಜವಾಗಿಯೂ ಪ್ರಮುಖ ತಾಂತ್ರಿಕ ವಿವರ ಮತ್ತು ವಿಧಾನ ಮಾಡಿದ!

</ಕೊನೆಯಲ್ಲಿ>

ನನ್ನ ಬ್ಲಾಗ್ ಚಂದಾದಾರರಾಗಿ.

ನಲ್ಲಿ ಟ್ವಿಟ್ಟರ್ ನನ್ನನ್ನು ಅನುಸರಿಸಿ http://www.twitter.com/pagalvin

ನನ್ನ ಟ್ಯಾಗ್ಗಳು:

ತ್ವರಿತ ಮತ್ತು ಸರಳ: ಒಂದು InfoPath ಫಾರ್ಮ್ ಓದಲು ಮಾಡಿ (ಪಾಚಿಯಲ್ಲಿ InfoPath ಫಾರ್ಮ್ಸ್ ಸೇವೆಗಳು)

ಈ ಸಾಮಾನ್ಯ ವ್ಯಾಪಾರ ಸನ್ನಿವೇಶದಲ್ಲಿ ಇಲ್ಲ:

  • ಬಳಕೆದಾರ InfoPath ಫಾರ್ಮ್ ತುಂಬುತ್ತದೆ.
  • ರಚನೆಯಲ್ಲಿ ಸಲ್ಲಿಸುತ್ತಾನೆ.
  • ದೀರ್ಘಕಾಲದ ಕೆಲಸದೊತ್ತಡದ ಪ್ರಕ್ರಿಯೆ ಪ್ರಾರಂಭ.
  • ಕೆಲಸದೊತ್ತಡದ ಚಾಲನೆಯಲ್ಲಿದ್ದಾಗ, ನಾವು ಯಾರಾದರೂ ರಚನೆಯಲ್ಲಿ ವಿಷಯವನ್ನು ಬದಲಾಯಿಸಲು ಬಯಸುವುದಿಲ್ಲ.

ಈ office.microsoft.com ಉದಾಹರಣೆಗೆ describes how to create a separate "view" and mark the whole view as read-only. This is a workable approach but has the drawback that you’ve effectively created two entire versions of the same form and must now keep them in sync manually. If you add a field to the editable view, you must then add it to the non-editable view as well. ಕಾಲಾನಂತರದಲ್ಲಿ, ವಿವಿಧ ಡೆವಲಪರ್ಗಳೊಂದಿಗೆ, there can be some divergence.

ಈ ಪರ್ಯಾಯ ಕೆಲವು ಸಂದರ್ಭಗಳಲ್ಲಿ ಉತ್ತಮ ಕೆಲಸ ಮಾಡುತ್ತದೆ:

  • Add a new field to the form called "IsEditable".
  • ನಿಜವಾದ ತನ್ನ ಡೀಫಾಲ್ಟ್ ಮೌಲ್ಯವನ್ನು ಹೊಂದಿಸಿ.
  • MOSS ಪ್ರಕಟಿಸುತ್ತಿರುವಾಗ ಅದು ಪ್ರಚಾರ.
  • ಕೆಲಸದಗತಿಯಲ್ಲಿ, ಸುಳ್ಳು ಗೆ IsEditble ಮೌಲ್ಯವನ್ನು ಸೆಟ್.
  • ರೂಪ ಹಿಂತಿರುಗಿ.
  • Add a rule that "upon open of the form", IsEditable ಸುಳ್ಳು ಆಗಿದ್ದರೆ ನಿಮ್ಮ ಸೇವ್ ಬಟನ್ ಅಶಕ್ತಗೊಳಿಸಿ.

The drawback to this approach is that all the fields will still be editable on the screen. The user can get a false impression that they can actually change content. You can mitigate that by putting in some text that the form is disabled, ಬಹುಶಃ ಪುಟದ ಅಡ್ಡಲಾಗಿ ದೊಡ್ಡ ಕೆಂಪು ಅಕ್ಷರಗಳಲ್ಲಿ.

ಒಂದು ಯೋಜನೆ, I created a "workflow status" ನೋಟ. As the workflow progressed, it would update specific status fields that had been promoted from the form. When the user opened the form, the "open form" ಎಂಬ ಅಭಿಪ್ರಾಯವನ್ನು ಬದಲಿಸಿತು ಮತ್ತು ಬಳಕೆದಾರ ಒಂದು ಸುಂದರವಾದ ಚಿಕ್ಕ ಸಾರಾಂಶ ಸ್ಥಿತಿ ಹಂತ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಆಳ್ವಿಕೆ.

</ಕೊನೆಯಲ್ಲಿ>

ನನ್ನ ಬ್ಲಾಗ್ ಚಂದಾದಾರರಾಗಿ.

ಒಂದು InfoPath ಫಾರ್ಮ್ ರಲ್ಲಿ ಬಳಕೆದಾರ ID ಯನ್ನು ಆಧರಿಸಿ ವೀಕ್ಷಿಸಿ ಬದಲಿಸಿ

ನಾವು ಒಂದು ಹೊಸ ಬಾಡಿಗೆ ಬೆಂಬಲಿಸಲು ಬಹು ದೃಷ್ಟಿಕೋನಗಳನ್ನು ಒಂದು InfoPath ರಚನೆಯಲ್ಲಿ ಅಭಿವೃದ್ಧಿಪಡಿಸಿದರು / on-boarding process. When the company hires a new person, ಐಟಿ ಇಲಾಖೆ ಮತ್ತು ಇತರ ಗುಂಪುಗಳು ಕ್ರಮವನ್ನು ತೆಗೆದುಕೊಳ್ಳುವ ಅವಶ್ಯಕತೆ (ವೇತನದಾರರ ಹೊಂದಿಸಲು, ಸೂಕ್ತ ಅನ್ವಯಗಳನ್ನು ಪ್ರವೇಶವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು, ಒಂದು ಮೇಜಿನ ಪತ್ತೆ, ಇತ್ಯಾದಿ). We use on form but a different view of the form for each of those functions.

ಈ ಕಂಪೆನಿಯಲ್ಲಿ, ವ್ಯಾಪಾರ ಪ್ರಕ್ರಿಯೆಯಲ್ಲಿ ಜನರು ಅತ್ಯಂತ ಐಟಿ-ತಿಳಿ ಇವೆ, ಅವರು ರೂಪ ಪ್ರವೇಶಿಸಲು ಇದರಿಂದ, their default view is a "menu" view with buttons that direct them to their specific function. ಹೇಗಾದರೂ, we needed to simplify things for the new hire’s direct manager. This person should not see any of the IT related stuff. ವಾಸ್ತವವಾಗಿ, ಅವಳು ರೂಪ ಕೇವಲ ಒಂದು ನೋಟ ನೋಡಿ ಮತ್ತು ಇತರ ವೀಕ್ಷಣೆಗಳು ನೋಡಲು ಒಂದು ಆಯ್ಕೆಯನ್ನು ಹೊಂದಿಲ್ಲ ಸಹ ಬೇಕು.

ನಮ್ಮ ಸಂದರ್ಭದಲ್ಲಿ, ನೇರ ವ್ಯವಸ್ಥಾಪಕರ ಖಾತೆಯನ್ನು ನೇರವಾಗಿ ಒಂದು ರೂಪದಲ್ಲಿ ಸೌಜನ್ಯ ಬಂಧಿಸಲಾಗಿದೆ ಎಂದು ಆಯ್ಕೆ ಸಂಪರ್ಕಿಸಿ (which I am always wanting to call a "people picker" ಕೆಲವು ಕಾರಣಕ್ಕಾಗಿ).

ಹಂತಗಳು ಹೀಗಿವೆ:

1. ವಿನ್ಯಾಸ ಕ್ರಮದಲ್ಲಿ, ಪರಿಕರಗಳು ಹೋಗಿ -> Form Options -> Open and Save.

2. Select "rules".

3. Create a new rule whose action is "switch to view" and whose condition leverages the userName() ಕ್ರಿಯೆ.

userName() returns the "simple" user name without the domain. If I log into SharePoint with credentials "domain\pagalvin", userName() returns "pagalvin".

The contact selector provides three bits of information for a contact. The "AccountID" portion is most useful for this scenario. The only thing that makes this even a little bit of challenge is that the contact selector (in my environment anyway) returns the domain and user ID, as in "domain\pagalvin". This prevents us from doing a straight-forward equality condition since AccountID ("domain\pagalvin") will never equal userName() ("pagalvin").

We can get around this using the "contains" operator: AccountID contains userName().

We can take it further and pre-pend a hard-coded domain in front of the userName() function to get our equality check and eliminate the risk of a false positive on the contains operator.

We would have REALLY like to automatically switch view for other users based on their AD security group membership. ಉದಾಹರಣೆಗೆ, when a member of the "IT Analytics" group accesses the form, automatically switch to the IT Analytics view. We didn’t have time to implement it, but my first thought is to create a web service that would have a method like "IsMemberOfActiveDirectorySecurityGroup", pass it the userName() and return back true or false. Does anyone have any other, more clever idea? Is there any SharePoint function we can leverage from InfoPath to make that determination?

</ಕೊನೆಯಲ್ಲಿ>

ನನ್ನ ಟ್ಯಾಗ್ಗಳು: