Σφάλμα χρόνου εκτέλεσης BDC εξήγησε

Μου προκάλεσε ένα σφάλμα BDC αυτή την εβδομάδα το που εκδηλώθηκε στη διεπαφή χρήστη και εν τη 12 Κυψέλη καταγραφής κατά το χρόνο εκτέλεσης.

Πρώτη, αυτό εμφανίστηκε στο περιβάλλον εργασίας χρήστη:

Δεν ήταν δυνατή η εύρεση πεδίων για εισαγωγή όλων των τιμών αναγνωριστικού για τη σωστή εκτέλεση μιας Εμφάνισης_μεθόδου Ειδικής_εύρεσης με όνομα … Εξασφαλιστεί παράμετροι εισαγωγής έχουν TypeDescriptors συσχετισμένους με κάθε αναγνωριστικό που έχει οριστεί για αυτή την οντότητα.

Εδώ είναι ένα στιγμιότυπο οθόνης:

clip_image001

Μπορούσε, επίσης, να προκαλέσει αυτό το μήνυμα να εμφανίζεται σε το 12 Κυψέλη καταγραφής στο θα (χρησιμοποιώντας μου κατοχυρωμένη με δίπλωμα ευρεσιτεχνίας high-tech-don't-try-this-at-home "μυστηριώδεις λάθη" μέθοδος):

11/14/2007 09:24:41.27 W3wp.exe (0x080C) 0x0B8C του SharePoint Portal Server επιχειρηματικών δεδομένων υψηλής εξαίρεση 6q4x στο BusinessDataWebPart.OnPreRender: System.InvalidOperationException: Η τιμή του αναγνωριστικού ”, τύπου ”, δεν είναι έγκυρη. Αναμενόμενη τιμή αναγνωριστικού του τύπου 'System.String'. στο Microsoft.Office.Server.ApplicationRegistry.MetadataModel.Entity.FindSpecific(Αντικείμενο[] subIdentifierValues, LobSystemInstance lobSystemInstance) στο Microsoft.SharePoint.Portal.WebControls.BdcClientUtil.FindEntity(Οντότητα οντότητα, Αντικείμενο[] userValues, LobSystemInstance lobSystemInstance) στο Microsoft.SharePoint.Portal.WebControls.BusinessDataItemBuilder.GetEntityInstance(Προβολή desiredView) στο Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.GetEntityInstance() στο Microsoft.SharePoint.Portal.WebControls.BusinessDataDetailsWebPart.SetDataSourceProperties()

Έψαξα γύρω και βρήκα μερικές οδηγεί σε το Φόρουμ MSDN, αλλά δεν ήταν αρκετό για μένα να καταλάβω τι έκανα λάθος. Είδα μια εκπομπή στο Web με TED Pattison που μου εταιρεία έχει squirreled μακριά σε ένα διακομιστή και ήρθε να συνειδητοποιήσει το πρόβλημα μου.

Στο ADF μου, Είμαι σύνδεση σε μια βάση δεδομένων SQL, όπως φαίνεται:

            <Ιδιότητα Όνομα="RdbCommandText" Τύπος="System.String">
              <![CDATA[
                ΕΠΙΛΈΞΤΕ SETID, CARRIER_ID, EFFDT, DESCR, EFF_STATUS, TAXPAYER_ID, NETWORK_ID, FRT_FORWARD_FLG, ALT_NAME1, ALT_NAME2, LANGUAGE_CD,
                      ΧΏΡΑ, ΔΙΕΎΘΥΝΣΗ1, 2Η ΔΙΕΎΘΥΝΣΗ, ADDRESS3, ADDRESS4, ΠΌΛΗ, NUM1, NUM2, HOUSE_TYPE, ADDR_FIELD1, ADDR_FIELD2, ADDR_FIELD3,
                      ΚΟΜΗΤΕΊΑ, ΚΡΆΤΟΣ, ΤΑΧΥΔΡΟΜΙΚΉ, GEO_CODE, IN_CITY_LIMIT, COUNTRY_CODE, ΤΗΛΈΦΩΝΟ, ΕΠΈΚΤΑΣΗ, ΦΑΞ, LAST_EXP_CHK_DTTM, FREIGHT_VENDOR,
                      INTERLINK_DLL, TMS_EXCLUDE_FLG από dbo.PS_CARRIER_ID_VW με (nolock)
                ΌΠΟΥ
                  (SETID <> "ΜΕΤΟΧΉ") και
                  (χαμηλότερη(CARRIER_ID) >= κάτω(@MinId)) και
                  (χαμηλότερη(CARRIER_ID) <= κάτω(@MaxId)) και
                  (χαμηλότερη(DESCR) ΉΘΕΛΑ να κατώτερο(@InputDescr))
                ]]>
            </Ιδιότητα>

Έδωσα ήταν ότι SQL από ένα πρόσωπο DBA και αν κατάλαβα καλά, ότι είναι ένα ειδική Προβολή δημιούργησαν μόνο για μένα. Το μοναδικό κλειδί, εκεί είναι CARRIER_ID.

Εδώ είναι το ζωύφιο που εισήγαγα:

      <Αναγνωριστικά>
        <Αναγνωριστικό Όνομα="CARRIER_ID" Όνομα τύπου="System.String" />
        <Αναγνωριστικό Όνομα="DESCR" Όνομα τύπου="System.String" /> 
</Αναγνωριστικά>

Κάπου κατά μήκος της γραμμής, Είχα καταφέρει να συγχέουμε τον εαυτό μου πάνω από την έννοια του <Αναγνωριστικά> και πρόσθεσε DESCR, ακόμα κι αν δεν είναι στην πραγματικότητα ένα αναγνωριστικό. Πήρα DESCR από τα αναγνωριστικά σύνολο και presto! Δούλεψε όλα.

Ελπίζω να σώσει κάποιον κάποια θλίψη 🙂

Technorati Tags: , , ,

2 thoughts on «Σφάλμα χρόνου εκτέλεσης BDC εξήγησε

  1. Paul Galvin

    Pieter, σας probalby αυτό λυθεί από τώρα, αλλά εικασία μου είναι ότι θα πρέπει να συνδέονται με τον ορισμό στο πίσω άκρο. Ίσως το ίδιο το πεδίο SQL περιορίζεται σε 60 χαρακτήρες? Κάτι τέτοιο?

  2. Pieter Veenstra

    Γεια σου,

    Έχω ένα θέμα με έναν υπολογιστή BDC, και αναρωτιέμαι αν μπορείτε να βοηθήσετε με αυτό?

    Είμαι με τη χρήση δύο identifiier πεδία ( μια σειρά και ένα πεδίο "Περιγραφή"), κάθε φορά που ο συνολικός αριθμός των χαρακτήρων που υπερβαίνει 60 Έχω πάρει τα λάθη foollowing:

    Τιμή κειμένου δεν είναι έγκυρη

    Ένα πεδίο κειμένου περιέχει μη έγκυρα δεδομένα. Ελέγξτε την τιμή και προσπαθήστε ξανά.

    Καταλαβαίνετε όπου αυτό όριο του 60 χαρακτήρες που προέρχεται από? και πώς να διορθώσετε αυτό το ζήτημα?

    Αυτή τη στιγμή τον περιορισμό την περιγραφή με τέτοιο τρόπο ώστε ο συνολικός αριθμός των χαρακτήρων δεν υπερβαίνει 60.

Αφήνω μια απάντηση

Η διεύθυνση email σας δεν θα δημοσιευθεί. τα απαιτούμενα πεδία είναι επισημασμένα *