Δευτέρα 23 Ιουλίου 2012

Sharepoint Project – Create Forms and WorkFlows Part3

Ας δούμε λοιπόν τι κάνουμε.
Πρώτα από όλα Δημιουργούμε μία βιβλιοθήκη για την δημιουργία των Αιτήσεων Αδείας
image
Επίσης Δημιουργούμε Μία βιβλιοθήκη με τον ίδιο τρόπο με όνομα Εγκεκριμένες Αιτήσεις Αδείας
Και μία βιβλιοθήκη με τον ίδιο τρόπο με όνομα Απορριφθέντες Αιτήσεις Αδείας.

Οπότε στο Site μας θα εμφανιστούν οι τρεις νέες βιβλιοθήκες

image

Στην βιβλιοθήκη Αιτήσεις Αδείας Δίνουμε δικαιώματα Contribute έτσι ώστε οι χρήστες μας να μπορούν να δημιουργήσουν νέες αιτήσεις Αδείας.

Στην βιβλιοθήκη Εγκεκριμένες και Απορριφθέντες Αιτήσεις Αδείας δίνουμε δικαιώματα Read σε όλους τους χρήστες έτσι ώστε μόνο να μπορούν να δουν τις αιτήσεις αδείας τους και να μην μπορούν να τις πειράξουν.

Στη συνέχεια Πηγαίνουμε στην Βιβλιοθήκη Αιτήσεις Αδείας > Ρυθμίσεις > Ρυθμίσεις Για προχωρημένους > Επεξεργασία Προτύπου

image

Θα Ανοίξει το πρότυπο με το Infopath

image

Αρχίζουμε λοιπόν και δίνουμε μορφή στην Φόρμα μας σύμφωνα με αυτά που θέλουμε και έχουμε αναφέρει στο Part1

Μετά από όλα αυτά λοιπόν η φόρμα θα έχει μία μορφή σαν την πιο κάτω

image

Στην φόρμα που σχεδιάζουμε κάνουμε διάφορους ελέγχους της μορφής Το έως δεν μπορεί να είναι μικρότερο από το από
Ο Εργαζόμενος δεν μπορεί να είναι κενός κλπ κλπ

Ορίζουμε το πεδίο Εργαζόμενος να παίρνει τιμές από την λίστα που έχουμε δημιουργήσει και έχουμε τους εργαζόμενους. Με φίλτρα Φέρνουμε τους Διευθυντές από την ίδια λίστα κλπ

Ήρθε η ώρα να κάνουμε τον υπολογισμό των εργάσιμων ημερών χρησιμοποιόντας το Excel που είχαμε αποθηκεύσει.

Την σύνδεση αυτή μπορούμε να την πετύχουμε διαβάζοντας το ποιο κάτω άρθρο http://www.avanadeblog.com/sharepointasg/2011/10/using-excel-services-rest-api-with-infopath-2010.html

Intro

With Excel Service REST API it is possible to get data from excel sheets. But it is also possible to send input parameter to Excel sheets with this API. Due to this you can send parameters to a calculated cell or change values in diagrams and retrieve the recalculated value or diagram.

With InfoPath 2010 it is possible to retrieve data from REST web services. In combination this can be used to retrieve data from Excel spreadsheets via the Excel Services REST API in InfoPath. In the flowing text I will describe how to use this features and combine them. As sample a simple multiplication calculator with InfoPath as user interface and Excel Services as business logic will be used.

Preparing the Excel sheet

First we need to prepare the excel sheet with formulas for our calculator. I created an Excel sheet and added the following headers and values to it:

  • Paramter1 with cell B2 as value
  • Paramter2 with cell B3 as value
  • Result with formula: =B2*B3

imageimage

As sample value each parameter will be set to 5 which will be calculated as result 25 in cell B4. Now it is important to set the parameter and result cells as named range. This makes it a lot easier to use with the REST API. Just select the cell and type the name of the range in the top left corner and hit enter. Name the ranges PARAMERER1, PARAMETER2 and RESULT. Save this excel file as "rest_demo.xlsx" in a SharePoint server document library (Excel services must be available and the enterprise feature activated in the site collection).

Preparing the InfoPath 2010 form

Open InfoPath 2010 and create a new empty form. Create 3 data fields of type text with the following names:

  • Paramter1
  • Parameter2
  • Result

Drag and drop the fields onto your InfoPath form. It will look like this:

image

Now we will prepare the REST URL to call our Excel file (See "Sharepoint 2010 - Excel Services REST API"). The first part of the URL will return the result value as HTML and will look like this:

http://intranet.contoso.com/_vti_bin/ExcelRest.aspx/Shared%20Documents/rest_demo.xlsx/Model/Ranges('RESULT')

As the result will be HTML it is difficult to extract the result value in InfoPath. InfoPath is designed to use XML trees for data sources. To force Excel Services to return the result as XML tree we will append the parameter "?$format=atom":

http://intranet.contoso.com/_vti_bin/ExcelRest.aspx/Shared%20Documents/rest_demo.xlsx/Model/Ranges('RESULT')?$format=atom

At the moment we will always receive the result value 25 because we have no parameters in our URL. The trick is now to inject values on the named ranges PARAMETER1 and PARAMETER2. This can be done by appending "&Ranges('PARAMETER1')=6&Ranges('PARAMETER2')=6" to the URL. Now it will look like this and return 36 as new result value:

http://intranet.contoso.com/_vti_bin/ExcelRest.aspx/Shared%20Documents/rest_demo.xlsx/Model/Ranges('RESULT')?$format=atom&Ranges('PARAMETER1')=6&Ranges('PARAMETER2')=6

Our URL is now ready to be used in our InfoPath calculator. Open your InfoPath form and click "Data"->"From Web Service"->"From REST Web Service":

image

Insert the URL we prepared in the steps before:

image

Add a button with text "Calculate" to your form. To bind the REST action to your button click "Manage Rules". Add a rule of type "Change REST URL".

image

Click "Insert Formula" and use the "concat" function to merge the URL. Replace the parameter values with the fields "Parameter1" and "Parameter2". It will look like this:

image

If we would now bind the result of the data connection to the result field we will always get the value 25 because the data service was only called at form load. You can disable this and add a second rule to your button after the first one. Select the action "Query for data" and choose your excel REST web service.

image

Now we will receive the right value but it will not show up on the form. Therefore we need a third rule that sets the return value of the data service to our result field. Add a new rule of type "Set a field's value". Set the value of our result field with the value of the REST web service. You can find the value in the XML tree at "fv" (field value):

image

Entry->content->ns2:range->row->c->fv

The InfoPath calculator based on excel service REST API is now ready to test. Start the form in preview mode. Insert two values in the parameter fields and press the "Calculate" button.

image


Sharepoint Project – Create Forms and WorkFlows Part2

Part2

Ας ξεκινήσουμε από το εύκολο κομμάτι.

Θέλουμε να μπορούμε να υπολογίσουμε τις εργάσιμες ημέρες που είναι ανάμεσα σε δύο ημερομηνίες

Εργάσιμες Ημέρες = Από – Έως

Γενικά για να υπολογίσουμε τις Ημέρες είναι πολύ εύκολο, Μία απλή αφαίρεση αλλά οι Εργάσιμες?

Στο Excel ΕΙΝΑΙ πολύ εύκολο να το κάνουμε.
Κελί Α2 Από Μορφοποίηση Ημερομηνία
Κελί Α3 ΕΩΣ Μορφοποίηση Ημερομηνία
Κελί Α4 Αποτέλεσμα Ημέρες Συνάρτηση NETWORKDAYS

ΓΙΑ ΝΑ ΜΗΝ παιδευόμαστε στην πορία πρέπει να ονομάσουμε τα κελιά Α2 σε APO για παράδειγμα A3 EOS και A4 APOTELESMA

Αυτό το κάνουμε πηγαίνοντας αριστερά από το fx όπου γράφει Β2 για παράδειγμα όπου θα βάζουμε την τιμή, κάνουμε κλικ και γράφουμε Apo το ίδιο κάνουμε για το Β3 και για το Β4

image

Βλέπουμε ότι το Excel μας δουλεύει όπως ήταν και το αναμενόμενο. Υπολογίζει σωστά τις εργάσιμες ημέρες αφαιρώντας τα ΣαββατοΚύριακα και τις Επίσημες Αργίες.

Στη συνέχεια το αποθηκεύουμε σε μία βιβλιοθήκη του Sharepoint που όμως Πρέπει να έχουμε ορίσει ότι ανοίκει στα Trusted Places του sharepoint (Το οποίο το ρυθμίζουμε από το Sharepoint Central Administration)

Έτσι μετά από αυτό βλέπουμε ότι μπορούμε να ανοίξουμε την σελίδα του Excel ΜΕΣΑ ΣΤΟΝ INTERNET EXPLORER.

image

Sharepoint Project – Create Forms and WorkFlows

Καλημέρα σε όλους

Ασχολούμαι με το sharepoint αρκετά χρόνια φτιάχνοντας διάφορα μικρά ή και λίγο μεγαλύτερα Project. ΔΕΝ ΕΙΜΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΤΗΣ ΟΥΤΕ DEVELOPER….

Είχα πάρα πολύ καιρό να γράψω κάτι αλλά τελικά πήρα την απόφαση, βρήκα και λίγο χρόνο και είπα να σηκώσω κάτι στο Blog μου

Θεωρώ ότι είναι ένα εργαλείο το οποίο το έχουμε αφήσει στην άκρη, ειδικά εδώ στην Ελλάδα.

Νομίζω ότι οι Developers που δημιουργούν εφαρμογές Web από το μηδέν θα είχαν ένα μεγάλο όπλο στο οπλοστάσιό τους αν “μάθαιναν” να χρησιμοποιούν το Sharepoint.

Επειδή λοιπόν βλέπω ότι κανένας μας δεν γράφει κάτι για αυτό το εργαλείο, αποφάσισα να γράψω κάποια πράγματα και να προσπαθήσω να δημιουργήσω έναν Step By Step Οδηγό για την δημιουργία ενός “προγράμματος” στο Sharepoint στο οποίο θα καταχωρούμε τις αιτήσεις αδειών και θα δημιουργήσουμε και ροές εργασίας εγκρίσεων.

Το να καταγραφεί το παραπάνω με λόγια είναι αρκετά δύσκολο, αλλά θα προσπαθήσω να μεταφέρω όσο καλύτερα μπορώ την φιλοσοφία.

Γενικά τι χρειαζόμαστε?

Χρειαζόμαστε έναν Sharepoint Server 2010

Τον Sharepoint Server τον χρειαζόμαστε για να μπορούμε να κάνουμε Publish Excel Services, αλλά και Form (Infopath) Services, πράγμα που δεν το κάνει ο Free Sharepoint.

Επιπλέον οι άδειες που χρειαζόμαστε είναι Enterprise έτσι ώστε οι φόρμες να μπορούν να ανοίξουν σε περιβάλλον Web και να μην είναι αναγκασμένοι οι Clients να έχουν infopath στο PC τους.

Χρειαζόμαστε το Infopath για να σχεδιάσουμε τις φόρμες

Χρειαζόμαστε τον sharepoint designer για να σχεδιάσουμε τις ροές εγκρίσεων (Ο Sharepoint Designer είναι Free και μπορείτε να τον κατεβάσετε από http://www.microsoft.com/el-gr/download/details.aspx?id=16573) Καλό θα ήταν να κατεβάσετε την Ελληνική Έκδοση έτσι ώστε κάποια προεπιλεγμένα Workflows που έχει να είναι μεταφρασμένα στα Ελληνικά.

Πρώτα από όλα πρέπει να έχουμε εγκαταστήσει τον Sharepoint Server μέσα στο Domain μας ο οποίος για να εγκατασταθεί θέλει να υπάρχει και SQL τουλάχιστον 2005 64bit. Στον server αυτό θα πρέπει να έχουμε ενεργοποιήσει Excel Services, Form Services κλπ και θα πρέπει να έχουμε ορίσει κάποιο σημείο το οποίο θα το θεωρεί αξιόπιστο ώστε να μπορούμε να αποθηκεύουμε κάποιο Excel και αυτό να ανοίγει σε περιβάλλον Web και όχι απλά να μπορούμε να το κάνουμε Download από τον Sharepoint Server.

Εφόσον λοιπόν είμαστε έτοιμοι με όλα τα παραπάνω μπορούμε να ξεκινήσουμε.

Όλα ξεκινάνε από τον καλό σχεδιασμό, έτσι ώστε να μην μας εμφανιστούν στην πορία πράγματα τα οποία δεν τα είχαμε προβλέψει. Σε αυτό το σημείο λοιπόν πρέπει να πάρουμε μολύβι και χαρτί και να καταγράψουμε όσο δυνατόν καλύτερα τις απαιτήσεις μας.

Θέλουμε λοιπόν ένας ΧΡΗΣΤΗΣ να συμπληρώνει μία φόρμα στην οποία θα διαλέγει έναν ΕΡΓΑΖΟΜΕΝΟ (Διότι όλοι οι εργαζόμενοι Δεν έχουν υπολογιστή και Active Directory Account)
Θέλουμε η φόρμα να έχει ΗΜΕΡΟΜΗΝΙΑ ΔΗΜΙΟΥΡΓΙΑΣ. Θέλουμε να διαλέγει την ημερομηνία ΑΠΟ που θα πάρει άδεια μέχρι την ημερομηνία ΕΩΣ που θα πάρει άδεια. Στη συνέχεια θέλουμε να υπολογίζουμε τις ημέρες και μάλιστα τις ΕΡΓΑΣΙΜΕΣΗΜΕΡΕΣ αφαιρώντας τα Σαββατοκύριακα και τις επίσημες αργίες. Στο τέλος θέλουμε να καταχωρεί την φόρμα και να αποθηκεύετε η φόρμα με ένα μοναδικό όνομα ΟΝΟΜΑΦΟΡΜΑΣ.

Με τα παραπάνω βλέπουμε ότι χρειαζόμαστε τα πεδία
ΧΡΗΣΤΗΣ
ΕΡΓΑΖΟΜΕΝΟΣ
ΗΜΕΡΟΜΗΝΙΑΔΗΜΙΟΥΡΓΙΑΣ
ΑΠΟ
ΕΩΣ
ΕΡΓΑΣΙΜΕΣΗΜΕΡΕΣ
ΟΝΟΜΑΦΟΡΜΑΣ

Σκεφτόμαστε ότι όταν θα ψάχνουμε αποτελέσματα θα πρέπει να μπορούμε να φιλτράρουμε ανά έτος έτσι ώστε να βλέπουμε πόσες άδειες πήρε ο κάθε χρήστης το κάθε έτος Οπότε χρειαζόμαστε ένα πεδίο ΕΤΟΣ το οποίο με κάποιο τρόπο θα υπολογίζεται από την ημερομηνία Δημιουργίας.

Επίσης αν η πολιτική της εταιρίας είναι ότι στο νέο έτος κουβαλάει το υπόλοιπο αδειών του από το προηγούμενο μέχρι κάποια ημερομηνία κάποιον τρόπο να ελέγχουμε αν η αίτηση αφορά ημέρες για προηγούμενο έτος ή για το τρέχον. Οπότε ένα πεδίο Yes/No ΠΡΟΗΓΟΥΜΕΝΟΕΤΟΣ.

Θα θέλαμε ο χρήστης να δηλώνει την επιθυμία του για άδεια την τάδε του μηνός αλλά δεν θέλουμε να ξεκινά ροή εγκρίσεων αν ο πρώτος διευθυντής του δεν δώσει το ΟΚ για την ημερομηνία αυτή, αν δεν ελέγξει ένα χρονοδιάγραμμα αδειών για εκείνη την περίοδο που αφορά το τμήμα του και την πόλη του.
Από το παραπάνω βγάζουμε συμπέρασμα ότι θέλουμε την ΠΟΛΗ του εργαζομένου, το ΤΜΗΜΑ του εργαζομένου, καθώς και ένα στοιχείο ελέγχου ΟΡΙΣΤΙΚΗΥΠΟΒΟΛΗ Ναι ή όχι.

Στη συνέχεια θέλουμε Αν έχει γίνει οριστική υποβολή να ξεκινά διαδικασία εγκρίσεων σειριακή με τους Υπεύθυνους του Εργαζόμενου. Οπότε χρειαζόμαστε τους υπεύθυνους εγκρίσεων με την σειρά που υπογράφουν, ΔΙΕΥΘΥΝΤΗΣ1, ΔΙΕΥΘΥΝΤΗΣ2, ΔΙΕΥΘΥΝΤΗΣ3, ΔΙΕΥΘΥΝΤΗΣ4, ΔΙΕΥΘΥΝΤΗΣ5, ΔΙΕΥΘΥΝΤΗΣ6.

Όταν καταχωρείτε η φόρμα θέλουμε ο χρήστης που την καταχώρησε να ενημερώνεται με email ότι έχει ξεκινήσει η διαδικασία εγκρίσεων. Στη συνέχεια θέλουμε να πάει email στον πρώτο Διευθυντή και αν εγκρίνει να συνεχίσει στο δεύτερο κλπ. Αν κάποιος απορρίψει να σταματά η διαδικασία εγκρίσεων και να αφαιρείται η άδεια από το χρονοδιάγραμμα αδειών.. Αν τελικά Εγκριθεί η άδεια θέλουμε να ενημερώνεται ο δημιουργός ότι έχει εγκριθεί ή άδειά του, και στην συνέχεια να μπορεί αυτή η άδεια πλέον να μην μπορεί να πειραχτεί.
Οπότε χρειαζόμαστε (για ευκολία) μία δεύτερη βιβλιοθήκη μέσα στην οποία θα αντιγράφονται οι εγκεκριμένες μόνο άδειες και δεν θα μπορεί να τις πειράξει κανένας παρά μόνο κάποιοι χρήστες (Για να διορθώσουν για παράδειγμα τις ημερομηνίες διότι ο Εργαζόμενος ήρθε νωρίτερα επειδή έπρεπε να έρθει, που εύχομαι να μην τύχει σε κανέναν μας αυτό).

Όταν η άδεια είναι εγκεκριμένη, όταν την ανοίγουμε να είναι σε εκτυπώσιμη μορφή και να μην μπορεί να πειραχθεί τίποτε, και επιπλέων να γράφει τα ονόματα των διευθυντών που έδωσαν τις εγκρίσεις. Τέλος θα πρέπει όταν η άδεια είναι εγκεκριμένη να πηγαίνει ένα email ενημέρωσης στο τμήμα Hr της πόλης που είναι ο χρήστης έτσι ώστε να μπορεί να εκτυπώσει την φόρμα σε περίπτωση που αυτό είναι απαιτητό και να βάλει τον εργαζόμενο να υπογράψει (Σε περίπτωση που και αυτό είναι απαιτητό).

Θέλουμε να μεταφέρεται στον φάκελο Εγκεκριμένων ΟΤΑΝ ο τελευταίος Διευθυντής Υπογράψει και όχι ενδιάμεσος. Ποιος είναι ο τελευταίος Διευθυντής? άλλος εργαζόμενος έχει 2 άλλος 3 άλλος 5, οι οποίοι είναι υπεύθυνοι για να εγκρίνουν για τον κάθε εργαζόμενο. Οπότε χρειαζόμαστε έναν έλεγχο για να βρούμε τον τελευταίο διευθυντή.
Ο έλεγχος θα είναι της μορφής IF ΔΙΕΥΘΥΝΤΗΣ1<>”” Then ΔΙΕΥΘΥΝΤΗΣ1ΕΛΕΓΧΟΣ2=1
IF ΔΙΕΥΘΥΝΤΗΣ2<>”” Then ΔΙΕΥΘΥΝΤΗΣ1ΕΛΕΓΧΟΣ2=1
IF ΔΙΕΥΘΥΝΤΗΣ3<>”” Then ΔΙΕΥΘΥΝΤΗΣ1ΕΛΕΓΧΟΣ3=1
IF ΔΙΕΥΘΥΝΤΗΣ4<>”” Then ΔΙΕΥΘΥΝΤΗΣ1ΕΛΕΓΧΟΣ4=1
IF ΔΙΕΥΘΥΝΤΗΣ5<>”” Then ΔΙΕΥΘΥΝΤΗΣ1ΕΛΕΓΧΟΣ5=1
IF ΔΙΕΥΘΥΝΤΗΣ6<>”” Then ΔΙΕΥΘΥΝΤΗΣ1ΕΛΕΓΧΟΣ6=1
Θέλουμε το άθροισμα των παραπάνω ΑΘΡΟΙΣΜΑΔΙΕΥΘΥΝΤΩΝ=sum(ΔΕΙΥΘΥΝΤΗΣ1;Δ ΙΕΥΘΥΝΤΗΣ2;ΔΙΕΥΘΥΝΤΗΣ3;ΔΙΕΥΘΥΝΤΗΣ4;ΔΙΕΥΘΥΝΤΗΣ5;ΔΙΕΥΘΥΝΤΗΣ5)
Και τέλος ένα ΠΕΔΙΟ όπου ΤΕΛΙΚΟΣΕΓΚΡΙΝΩΝ
IF ΑΘΡΟΙΣΜΑΔΙΕΥΘΥΝΤΩΝ=1 Then ΤΕΛΙΚΟΣΕΓΚΡΙΝΩΝ=ΔΙΕΥΘΥΝΤΗΣ1
IF ΑΘΡΟΙΣΜΑΔΙΕΥΘΥΝΤΩΝ=2 Then ΤΕΛΙΚΟΣΕΓΚΡΙΝΩΝ=ΔΙΕΥΘΥΝΤΗΣ2
IF ΑΘΡΟΙΣΜΑΔΙΕΥΘΥΝΤΩΝ=3 Then ΤΕΛΙΚΟΣΕΓΚΡΙΝΩΝ=ΔΙΕΥΘΥΝΤΗΣ3
IF ΑΘΡΟΙΣΜΑΔΙΕΥΘΥΝΤΩΝ=4 Then ΤΕΛΙΚΟΣΕΓΚΡΙΝΩΝ=ΔΙΕΥΘΥΝΤΗΣ4
IF ΑΘΡΟΙΣΜΑΔΙΕΥΘΥΝΤΩΝ=5 Then ΤΕΛΙΚΟΣΕΓΚΡΙΝΩΝ=ΔΙΕΥΘΥΝΤΗΣ5
IF ΑΘΡΟΙΣΜΑΔΙΕΥΘΥΝΤΩΝ=6 Then ΤΕΛΙΚΟΣΕΓΚΡΙΝΩΝ=ΔΙΕΥΘΥΝΤΗΣ6

έχοντας όλα τα παραπάνω σκέφτομαι ότι η φόρμα όταν θα έχει εγκριθεί πρέπει να ανοίγει σε άλλη μορφή (εκτυπώσιμη) οπότε θέλω και ένα Πεδίο ΚΑΤΑΣΤΑΣΗΕΓΚΡΙΣΗΣ.

Νομίζω ότι με τα παραπάνω πεδία είμαστε καλυμμένοι. Στην πορεία θα δούμε αν θα χρειαστούμε κάτι αλλά τον βασικό σχεδιασμό τον έχουμε κάνει.

ΚΑΤΑΛΗΞΑΜΕ ΛΟΙΠΟΝ ΝΑ ΧΡΕΙΑΖΟΜΑΣΤΕ
Τα προφανή ΧΡΗΣΤΗΣ, ΕΡΓΑΖΟΜΕΝΟΣ, ΗΜΕΡΟΜΗΝΙΑΔΗΜΙΟΥΡΓΙΑΣ, ΑΠΟ, ΕΩΣ, ΕΡΓΑΣΙΜΕΣΗΜΕΡΕΣ, ΟΝΟΜΑΦΟΡΜΑΣ, Αλλά και ένα σωρό ακόμη πεδία τα οποία δεν φαινόταν από την αρχή. Όλα αυτά τα πεδία θα πρέπει λοιπόν να τα περιέχει η φόρμα μας.

Data Input
Τα στοιχεία που θα “διαβάζουμε” στην φόρμα, μπορούν να έρχονται από πολλών ειδών πηγές.
Μπορούν να έρχονται από κάποιον SQL Server, από ODBC, από Web Service, ή από λίστες του Sharepoint. ΕΔΩ ΘΑ ΗΤΑΝ Η ΠΟΛΥ ΚΑΛΗ ΔΟΥΛΕΙΑ ΤΩΝ Developer να έκαναν για παράδειγμα ένα Web Service ή έναν Connector ή κάτι τέλος πάντων το οποίο θα μας σύνδεε τα Data με το ERP της εταιρίας για παράδειγμα. Μιας και δεν έχουμε αυτή τη στιγμή Developer σκέφτομαι ότι καλό θα ήταν να μπορώ αν χρειαστεί να κάνω Upload στην μισθοδοσία για παράδειγμα τα δεδομένα, οπότε στα παραπάνω πεδία προσθέτω και τον ΚΩΔΙΚΟΣΕΡΓΑΖΟΜΕΝΟΥ που έχει στην μισθοδοσία αλλά και τον αν είναι ΕΝΕΡΓΟΣ ή όχι.

Εγώ λοιπόν το έκανα με λίστα του sharepoint
Τι πρέπει να έχει αυτή η λίστα?

ΕΡΓΑΖΟΜΕΝΟΣ ΚΩΔΙΚΟΣ ΕΝΕΡΓΟΣ ΤΜΗΜΑ ΠΟΛΗ Δ1 Δ2 Δ3 Δ4 Δ5 Δ6
ΛΑΓΙΟΠΟΥΛΟΣ ΚΩΣΤΑΣ 234 Ναι ΙΤ ΘΕΣΣΑΛΟΝΙΚΗ p.petropoulos
t.tasopoulos        
ΠΕΤΡΟΠΟΥΛΟΣ ΠΕΤΡΟΣ 146 Ναι OIKONOMIKO ΑΘΗΝΑ k.kostopoulos          

Θα πρέπει λοιπόν να έχει την παραπάνω μορφή όπου οι τιμές των διευθυντών είναι τα UserName που έχουν στο Active Directory.

Σε αυτό το σημείο νομίζω ότι πρέπει να διακόψω το πρώτο μέρος, έτσι ώστε να μπορείτε να διαβάσετε όλα αυτά αλλά και να μπορείτε να τα σκεφτείτε .