Εγώ έγραψα έναs άρθρο για SharePointBriefing.com και έβαζαν ζωντανά σήμερα.
Εδώ είναι ένα τρέιλερ:
</Τέλος>
Συνέχεια μου για Twitter σε http://www.twitter.com/pagalvin
Εγώ έγραψα έναs άρθρο για SharePointBriefing.com και έβαζαν ζωντανά σήμερα.
Εδώ είναι ένα τρέιλερ:
</Τέλος>
Συνέχεια μου για Twitter σε http://www.twitter.com/pagalvin
Είμαι ήδη εργάζονται σε ένα έργο όπου χρειάζεται να εκχύλισμα συνημμένα από μια φόρμα του InfoPath. Υπάρχουν κάποιες καλές πόρων για parsing φόρμες του InfoPath (που είναι απλώς τα αρχεία XML, έτσι είναι πραγματικά αρκετά εύκολο).
Ενώ ήμουν κτίριο μέχρι το έργο, Ξεκίνησα από τη λήψη μια φόρμα του InfoPath και την εξοικονόμηση σε τοπικό σκληρό δίσκο μου. Μου κώδικας c# διάβαζα απευθείας από αυτό το παράδειγμα. Ωστόσο, Οι φόρμες του InfoPath πραγματικά ζουν μέσα σε μια βιβλιοθήκη φορμών του SharePoint. Έκανα μια μικρή αναζήτηση μισή καρδιά για να μάθετε πώς να το διαβάσετε κατευθείαν από τη βιβλιοθήκη και σχεδόν παρατήσει, στην περίπτωση αυτή θα είχα αποθηκεύσει τη φόρμα σε έναν τοπικό κατάλογο temp και διαβάσει από εκεί. Ωστόσο, δεν υπάρχει καμία ανάγκη να πάει μέσα από στεφάνες αυτών, όπως μπορείτε να το διαβάσετε κατευθείαν από τη βιβλιοθήκη. Αυτό το μικρό απόσπασμα δείχνει πώς:
/// Τάξη ορισμός πράγματα εδώ, συμπεριλαμβανομένων των:
ιδιωτική SPFile mySharePointFile; /* Μέρος του ένα SPList */ // Περισσότερο κώδικα πηγαίνει εδώ και μέσα σε μια μέθοδος της τάξης έχουμε: textReader = νέα XmlTextReader(mySharePointFile.OpenBinaryStream()); textReader.WhitespaceHandling = WhitespaceHandling.Κανένας; textReader.Read(); // Αν ο κόμβος έχει αξία ενώ (textReader.Read()) { |
Κλειδώνουν το κομμάτι ανωτέρω είναι ότι μπορούμε να διαβάσουμε το InfoPath απευθείας μέσω του OpenBinaryStream() μέθοδος καλούμε το SPFile ως παράμετρος για τον κατασκευαστή για XmlTextReader. Λειτουργεί μεγάλο.
</Τέλος>
Συνέχεια μου για Twitter σε http://www.twitter.com/pagalvin
Έχω μια λύση εισόδου δαπάνη για έναν πελάτη που αξιοποιεί το InfoPath και τη ροή εργασίας. Σε ένα σημείο κατά τη διάρκεια της διαδικασίας έγκρισης, Θα πρέπει να δημιουργήσει ένα μήνυμα ηλεκτρονικού ταχυδρομείου που έχει όλα αυτά τα δεδομένα το InfoPath καλή, καθώς και τα συνημμένα τους έτσι ώστε (στεναγμός) κάποιος μπορεί να πάρει αυτά τα δεδομένα και να με μη αυτόματο τρόπο εκ νέου το κλειδί σε μια εφαρμογή βάσης δεδομένων της Oracle.
Δεν είναι πολύ δύσκολο να πάρουν σε ή να αναλύσει τη φόρμα InfoPath. Δεν ήξερα πώς να χειριστεί τα συνημμένα, Ωστόσο. Μετά από μια ώρα ή δύο από poking γύρω από το Ίντερνετ (μια αιωνιότητα!) Βρήκα αυτό το άρθρο: http://support.microsoft.com/kb/892730
Αυτό παρέχει κάποιο πρακτικό κώδικα για να εξαγάγετε το συνημμένο από έναν κόμβο με τη μορφή. (Θα πρέπει ακόμα να βρείτε τον κόμβο και όλα αυτά, αλλά αυτό είναι ακριβώς ανάλυσης XML).
Ξέρω ότι η κατάσχεση είναι κωδικοποίηση base64 και πήγα αρχικά κάτω από τη διαδρομή του ακριβώς εξαγωγή το τα δεδομένα base64, αποκωδικοποίηση αυτό και να αποθηκεύσετε. Ωστόσο, Γρήγορα κατάλαβα ότι δεν ήξερα πώς να πάρει το όνομα του αρχείου μέχρι να βρεθεί το παραπάνω άρθρο.
Στην πραγματικότητα είχε διαπιστώσει ότι αρκετά νωρίς, αλλά είχε αναβληθεί από τη διχασμένη προσωπικότητα. Από τη μία πλευρά, το άρθρο * λέει * είναι καλό για το InfoPath 2007. Ακόμη, το κωδικό και οι οδηγίες είναι όλα σχετικά με το Visual Studio 2003 και αναφορές στο InfoPath 2003.
Κάτω γραμμή, λειτουργεί καλά για μένα τον κωδικό, το εν λόγω άρθρο, υπό τον όρο (μέχρι στιγμής). Μπορώ να πάρω μου φόρμα του InfoPath, Εγώ μπορεί να αναλύσει το, Να βρείτε και να αποκωδικοποιήσει το συνημμένο και ξέρω το όνομά του. Τι περισσότερο μπορεί κάποιος ζητήσει της ζωής?
</Τέλος>
Συνέχεια μου για Twitter σε http://www.twitter.com/pagalvin
Αν ανησυχείτε ότι το περιβάλλον σας του SharePoint μπορεί να είναι ένα tad ανθυγιεινά, Επιτρέψτε μου να συμβάλει σας καθορίσει ότι με ένα τσεκ.
Έχω μια διαδικασία έγκρισης δαπάνης που πρέπει να εφαρμόσω χρησιμοποιώντας το InfoPath σε ένα έλεγχο ταυτότητας φορμών που βασίζονται (FBA) περιβάλλον χρησιμοποιώντας μορφές υπηρεσιών (Web βάση InfoPath).
Υπάρχουν δύο ομάδες έγκριση και η διαδικασία λειτουργεί ως εξής:
Από το InfoPath πλευρά των πραγμάτων, Έχω διαφορετικά τμήματα που απόκρυψη/εμφανίζονται αν ο χρήστης είναι μέλος μιας από αυτές τις ομάδες έγκριση βάσει.
Σε ένα περιβάλλον FBA το όνομα χρήστη() συνάρτηση επιστρέφει πάντα κενό, Δυστυχώς. Αυτό που έχω κάνει έχει συσταθεί μια μια προσαρμοσμένη λίστα που ονομάζεται "Έγκριση ομάδες".
Δεν μπορώ να προσθέσω τυχόν πρόσθετων στηλών στη λίστα.
Όταν η φόρμα ανοίγει, έχει έναν κανόνα όπως αυτό:
Η "τιμή ενός πεδίου" βρίσκεται εδώ:
Αυτό βασικά λέγοντας: Ερώτημα την έγκριση ομάδας προσαρμοσμένη λίστα και το φίλτρο ερώτημα από ψάχνωντας για αυτό σειρά πού του τίτλου αξία = "NORDIC".
Εάν που αποδίδει οποιαδήποτε τιμή, στη συνέχεια ο τρέχων χρήστης είναι μέλος αυτής της ομάδας. Ξέρω ότι περιέχει αυτήν την τιμή, επειδή το μήκος της συμβολοσειράς είναι μεγαλύτερη του μηδενός.
Μειώστε ταχύτητα εξασφαλίζοντας τα επιμέρους στοιχεία στη λίστα ομάδας έγκρισης. Κατά το χρόνο εκτέλεσης, Εάν ο τρέχων χρήστης δεν έχει πρόσβαση ασφαλείας σε αυτό το στοιχείο τότε το ερώτημα δεν θα επιστρέφει, μήκος συμβολοσειράς θα είναι μηδέν, και τώρα ξέρετε τον τρέχοντα χρήστη δεν είναι μέρος αυτής της ομάδας. Μπορείτε να χρησιμοποιήσετε αυτό το γεγονός, όπως απαιτείται, με τη μορφή.
Αυτό είναι ένα σούπερ σύντομη write-up. Εγώ είμαι πίεση χρόνου ή θα παρέχω περισσότερες λεπτομέρειες.
Δεν ξέρω πόσο σχετική είναι ότι είμαι σε ένα περιβάλλον FBA. Αυτό κατά πάσα πιθανότητα θα μπορούσε να λειτουργήσει καλά σε ένα περιβάλλον μη-FBA, αλλά μπορώ να φανταστώ περιπτώσεις όπου αυτό θα ήταν χρήσιμο.
</Τέλος>
Συνέχεια μου για Twitter σε http://www.twitter.com/pagalvin
Δούλευα σε έντυπο InfPath σήμερα και συγκρούονταν με έναν παλιό φίλο, "Εξαίρεση που δεν αντιμετωπίστηκε κατά την απόδοση αποτελούν System.Xml.XmlException: Απροσδόκητο τέλος του αρχείου κατά την ανάλυση όνομα έχει συμβεί."
Αυτό συνέβη σε μένα εδώ και πολύ καιρό και δεν ξέρω τι ακριβώς έκανα να το λύσουμε. Ειλικρινά, Νομίζω ότι είχε τη μετάβαση σε ένα νέο σχέδιο και ποτέ δεν είδε αυτό επιλυθεί (αντικαταστάσεις μου έπρεπε να ασχοληθεί με αυτό πονοκέφαλος). Θυμάμαι ήταν ένας διάβολος ενός προβλήματος. Πέρασα αρκετές ημέρες ανεπιτυχής που ασχολούνται με αυτό. Από τότε, Έχω δει αυτό έλα φόρουμ MSDN τουλάχιστον μία φορά κατά το τελευταίο έτος και είδε ποτέ πραγματικά μια απάντηση για αυτό.
Χτύπησα σήμερα και ευτυχώς αυτή τη φορά , Μόλις είχα κάνει μια αλλαγή στη φόρμα. Υποστήριξα έξω αυτήν την αλλαγή και το πρόβλημα πήγε μακριά. Αποδεικνύεται ότι είναι δυνατό να δημιουργήσετε ένα από πρότυπο χρησιμοποιώντας το InfoPath Designer με τέτοιο τρόπο ότι δημιουργεί ένα σφάλμα ανάλυσης στην πλευρά διακομιστή μορφές του φράχτη.
Στην περίπτωσή μου, το πρόβλημα προκλήθηκε από αυτά τα βήματα:
Δεν ξέρω αν αυτά τα βήματα θα προκαλέσει ένα πρόβλημα ή ίσως, κατά κάποιο τρόπο τα δεδομένα της λίστας, η ίδια είναι ένα πρόβλημα. Εγώ πρόκειται να πειραματιστείτε λίγο και να δούμε αν μπορεί να καρφώσει το downt αυτός παραμέτρους αυτού με μεγαλύτερη λεπτομέρεια.
</Τέλος>
Συνέχεια μου για Twitter σε http://www.twitter.com/pagalvin
Είμαι που ζουν ακόμα στον κόσμο φόρμες του InfoPath και είχα ανάγκη να καταστεί μία από αυτές τις «μικρές» αλλαγές σε μια μορφή που, Δυστυχώς, σπάει μια σύμβαση ονομασίας υιοθέτησα με αυτό πριν από δύο εβδομάδες. Σκέφτηκα να τον εαυτό μου, "κάποιος πρόκειται να εξετάσουμε αυτό το πράγμα ετησίως από τώρα και να πω, «Τι σκεφτόμουν Paul? Από Jove, η σύμβαση ονομασίας δεν έχει κανένα νόημα!”
Συνειδητοποίησα ότι θα μπορούσε να δημιουργήσει μια προβολή της φόρμας για αυτό και στη συνέχεια, Άλλη μία φορά, συνειδητοποίησε ότι θα μπορούσε να κάνω κάτι σαν αυτό όλοι μαζί. Πρόσθεσα μια προβολή "Προγραμματιστής σημειώσεις" στη φόρμα του InfoPath, ως εκ τούτου:
Εγώ έχω ρυθμιστεί τη μορφή, έτσι ώστε οι χρήστες δεν μπορούν να πάρουν αυτή την άποψη και ως εκ τούτου, είναι μόνο ορατό με τον πελάτη του InfoPath στην προβολή σχεδίασης. Τώρα αισθάνομαι λίγο εμβολιασμένου ενάντια σε κάποια μελλοντική αγνώστου προγραμματιστή που βλέπουν μου ΜΟΡΦΗ και κακές σκέψεις σκέψης σχετικά με μένα. Φτου!
</Τέλος>
Συνέχεια μου για Twitter σε http://www.twitter.com/pagalvin
Μου φαίνεται να περνούν από τις φάσεις του InfoPath όπου, έξω από το μπλε, Εγώ χειροτεχνίας ένα μάτσο μορφές. Τα δάχτυλά μου μάθετε πώς να χρησιμοποιείτε το εργαλείο καλά και στη συνέχεια περνούν από εννέα μήνες ξηρασίας, και πρέπει να μάθω ακόμα μια φορά.
Είμαι στη μέση του μια φάση του InfoPath και είμαι δημιουργώντας φόρμες του InfoPath με πολλές απόψεις. Ένα πράγμα που πιθανώς θα παρατηρήσετε είναι ότι το InfoPath 2007 πελάτη δείχνει θέα με αλφαβητική σειρά. Αυτό είναι μια πραγματική ενόχληση μερικές φορές. Καλύτερη τεχνική μου αυτές τις μέρες είναι να προτάξετε έναν αριθμό για να το όνομα προβολής, έτσι ώστε πάντα παρουσιάζουν με τη σειρά που θέλω, όπως φαίνεται και εδώ:
Θα ήθελα να είχα κάνει αυτό όλοι μαζί.
</Τέλος>
Συνέχεια μου για Twitter σε http://www.twitter.com/pagalvin
Έχω εργάζεται πάνω μερικές φόρμες του InfoPath, αυτή την εβδομάδα σε ΒΡΎΑ σε ένα περιβάλλον FBA και έμαθε, όταν πήγα να αναπτύξετε τις μορφές σε ένα περιβάλλον παραγωγής με μια FBA ζώνη που το όνομα χρήστη() λειτουργία λειτουργία δεν λειτουργεί. Χρησιμοποιούσα για να δημιουργήσει την μοναδικό αρχείο ονόματα.
Καλά, ότι η λειτουργία δεν λειτουργεί σε ένα περιβάλλον FBA (τουλάχιστον, δεν είναι έξω από το πλαίσιο). Και, αντίστοιχα, χρησιμοποιώντας το όνομα χρήστη με τον τρόπο που είχα προγραμματίσει δεν θα έχετε εγγυημένα ένα μοναδικό όνομα αρχείου σε κάθε περίπτωση.
Η λύση μου ήταν να χρησιμοποιήσει το τώρα() λειτουργία και έναν κανόνα που πυρκαγιές κατά τη φόρτωση της φόρμας. Αντιστοιχίσετε το όνομα αρχείου για το στοιχείο δεδομένων όταν είναι κενό:
Το πλεονέκτημα αυτής της προσέγγισης είναι ότι το όνομα αρχείου έχει οριστεί μόνο μία φορά. (Εγώ δεν δείχνουν στην οθόνη πυροβοληθείσα, αλλά θέσει μια κατάσταση για τον κανόνα στη φωτιά μόνο όταν "myFilename" είναι κενό). Θα χρησιμοποιηθεί για να καθοριστεί το όνομα αρχείου στο επίπεδο προέλευσης δεδομένων. Συνήθως, Θα ήθελα να κάνω κάτι (Κακό) Σαν αυτό:
Το πρόβλημα με αυτό είναι ότι, εάν ο χρήστης A ανοίγει τη φόρμα, τη Δευτέρα και ο χρήστης Β αλλάζει την τρίτη, θα καταλήξετε με δύο διαφορετικές μορφές μετά δύο διαφορετικούς χρήστες την αποθήκευση με διαφορετικά ονόματα χρήστη.
Έτσι, ως ενοχλητικό όπως FBA μπορεί να είναι σε γενικές γραμμές και με το InfoPath ιδίως, αυτό με έκανε να σκεφτώ εκ νέου μια μικρή αλλά πραγματικά σημαντική τεχνική λεπτομέρεια και την προσέγγιση που δεν θα είχα κάνει διαφορετικά!
</Τέλος>
Συνέχεια μου για Twitter σε http://www.twitter.com/pagalvin
Υπάρχει ένα κοινό σενάριο επιχειρήσεων όπως αυτή:
Αυτό το παράδειγμα office.microsoft.com Περιγράφει τον τρόπο για να δημιουργήσετε μια ξεχωριστή προβολή"" και το σήμα ολόκληρη την άποψη ως μόνο για ανάγνωση. Αυτό είναι μια εφαρμόσιμη προσέγγιση, αλλά έχει το μειονέκτημα ότι έχω δημιουργήσει αποτελεσματικά δύο ολόκληρο εκδόσεις της ίδιας μορφής και πρέπει τώρα να τους κρατήσει σε συγχρονισμό με μη αυτόματο τρόπο. Εάν προσθέσετε ένα πεδίο στην προβολή "δυνατότητα επεξεργασίας", στη συνέχεια πρέπει να το προσθέσετε στην μη επεξεργάσιμη προβολή, καθώς και. Πάροδο του χρόνου, με διάφορους προγραμματιστές, μπορεί να υπάρξει κάποια απόκλιση.
Αυτή η εναλλακτική μέθοδος θα μπορούσε να λειτουργήσει καλύτερα σε ορισμένες περιπτώσεις:
Το μειονέκτημα αυτής της προσέγγισης είναι ότι όλα τα πεδία θα εξακολουθεί να είναι επεξεργάσιμα στην οθόνη. Ο χρήστης μπορεί να πάρει μια εσφαλμένη εντύπωση ότι μπορούν πραγματικά να αλλάξουν το περιεχόμενο. Μπορείτε να μετριάσετε που με την τοποθέτηση σε κάποιο κείμενο ότι η φόρμα είναι απενεργοποιημένη, ενδεχομένως με μεγάλα κόκκινα γράμματα στο επάνω μέρος της σελίδας.
Σε ένα έργο, Δημιούργησα μια κατάσταση ροής εργασίας"" προβολή. Καθώς η ροή εργασίας προχώρησε, με τον οποίο θα ενημερώσει πεδία του ειδικού καθεστώτος που είχε προαχθεί από τη φόρμα. Όταν ο χρήστης ανοίξει τη μορφή, την ανοιχτή φόρμα"" κανόνας μεταβεί αυτόματα σε ότι η προβολή και ο χρήστης είχε μια ωραία λίγο συνοπτική κατάσταση.
</Τέλος>
Είχαμε ένα αναπτυγμένο μια φόρμα του InfoPath με πολλαπλές προβολές για να υποστηρίξει μια νέα μίσθωση / διαδικασία για την επιβίβαση. Όταν η εταιρεία προσλαμβάνει ένα νέο πρόσωπο, το τμήμα ΤΠ και άλλες ομάδες που πρέπει να αναλάβουμε δράση (έχει συσταθεί μισθοδοσίας, επιτρέψει την πρόσβαση σε κατάλληλες εφαρμογές, Εντοπίστε ένα γραφείο, κλπ). Χρησιμοποιούμε σε μορφή, αλλά μια διαφορετική άποψη της φόρμας για κάθε μία από αυτές τις λειτουργίες.
Σε αυτή την εταιρία, περισσότεροι από τους ανθρώπους που συμμετέχουν στη διαδικασία επιχειρήσεων είναι IT καταλαβαίνω, Έτσι, όταν έχουν πρόσβαση εντύπου, προεπιλεγμένη προβολή τους είναι ένα μενού"" Δες με κουμπιά που τους κατευθύνει σε συγκεκριμένη λειτουργία τους. Ωστόσο, Χρειαζόμασταν για να απλοποιήσουμε τα πράγματα για τη νέα μίσθωση άμεσο διαχειριστή. Αυτό το άτομο δεν πρέπει να δείτε οποιαδήποτε της ΤΠ που σχετίζονται πράγματα. Στην πραγματικότητα, αυτή θα πρέπει να δείτε μόνο μια προβολή της φόρμας και ούτε έχουν τη δυνατότητα να δείτε τις άλλες απόψεις.
Στην περίπτωσή μας, που κατευθύνει το λογαριασμό του διαχειριστή είναι άμεσα συνδεδεμένη με τη μορφή ευγένεια μια επικοινωνήστε με επιλογέα (που είμαι πάντα θέλει να καλέσετε μια επιλογή ατόμων»" για κάποιο λόγο).
Τα βήματα είναι τα εξής:
1. Σε κατάσταση σχεδίασης, Πηγαίνετε στο εργαλεία-> Επιλογές φόρμας-> Ανοίξτε και να αποθηκεύσετε.
2. Επιλέξτε "κανόνες".
3. Δημιουργήστε έναν νέο κανόνα, του οποίου η δράση είναι "να εναλλάσσετε την τηλεόραση" και των οποίων η κατάσταση αξιοποιεί το όνομα χρήστη() συνάρτηση.
όνομα χρήστη() επιστρέφει το απλό"" όνομα χρήστη χωρίς τον τομέα. Αν μπορώ να συνδεθώ σε SharePoint με διαπιστευτήρια "domainpagalvin", όνομα χρήστη() επιστρέφει "pagalvin".
Ο επιλογέας επικοινωνίας παρέχει τρία κομμάτια των πληροφοριών για μια επαφή. Το AccountID"" μερίδα είναι πιο χρήσιμη για αυτό το σενάριο. Το μόνο πράγμα που κάνει αυτό ακόμη και ένα μικρό κομμάτι της πρόκλησης είναι ότι τον επιλογέα επαφής (στο περιβάλλον μου ούτως ή άλλως) Αποδίδει το αναγνωριστικό τομέα και χρήστη, όπως και στο "domainpagalvin". Αυτό μας αποτρέπει από το να κάνει μια απλή ισότητα κατάσταση από το AccountID ("domainpagalvin") ποτέ δεν θα ισούται με όνομα χρήστη() ("pagalvin").
Μπορούμε να πάρουμε γύρω από αυτό χρησιμοποιώντας την "περιέχει" χειριστή: AccountID περιέχει το όνομα χρήστη().
Μπορούμε να λάβουμε περαιτέρω και προ-επίκειμαι έναν τομέα κωδικοποιημένη μπροστά από το όνομα χρήστη() λειτουργία για να πάρει μας ελέγχου ισότητας και να εξαλειφθεί ο κίνδυνος ψευδώς θετικά για το περιέχει χειριστή.
Θα έχουμε πραγματικά όπως για την αυτόματη εναλλαγή προβολή για άλλους χρήστες με βάση την ιδιότητα μέλους της ομάδας ασφαλείας τους AD. Για παράδειγμα, όταν το μέλος της το "το Analytics" Ομάδα αποκτά πρόσβαση σε μορφή, μεταβείτε αυτόματα στην προβολή IT Analytics. Δεν είχαμε χρόνο για την εφαρμογή, αλλά η πρώτη σκέψη μου είναι να δημιουργηθεί μια υπηρεσία web που θα έχουν μια μέθοδο όπως "IsMemberOfActiveDirectorySecurityGroup", δώσετε όνομα χρήστη() και να επιστρέψει πίσω αληθής ή ψευδής. Υπάρχει κάποιος που έχει οποιοδήποτε άλλο, πιο έξυπνη ιδέα? Υπάρχει κάποια λειτουργία SharePoint μπορούν να αξιοποιήσουν από το InfoPath για να κάνουν αυτή τη διαπίστωση?
</Τέλος>