מוס: עדכון רשימה מותאמת אישית

ישנן דוגמאות רבות של עדכון רשימות מותאמות אישית באמצעות ה-SDK. הנה עוד.

הבעיה העסקית: טופס של InfoPath תוכנן מאפשר למשתמשים להזין באינטרנט רכש. פו המספרים צריך להיות רצף מסורתי המבוסס על ערכי המספרים השלמים וראיונות מחושב באופן אוטומטי.

הפתרון העסקי: יצירת רשימה מותאמת אישית מוס המכיל שתי עמודות: "ControlField" ו- "ControlValue". ערך העמודה מכילה את המספר הבא של דרישת רכש. שימו לב כי הכללי "לשלוט" המוסכמה מספק עבור שדות שליטה עתידית שבה ניתן להשתמש לפי הצורך.

פתרון טכני: יצירת שירות אינטרנט לגשת על ידי הלקוח InfoPath. שירות האינטרנט מחזירה בחזרה את המספר הבא של דרישת רכש ומעדכן את הערך של הרשימה.

לקחים:

  • בעת הוספת שירות אינטרנט כמקור נתונים של טופס InfoPath, מצאתי את זה צורך להמיר אותו udc ואחסן אותו לתוך בספריית חיבורי נתונים.
  • גם מצאתי את זה הכרחי לאפשר scripting בין תחומים באמצעות ניהול שירותים במרכז // ניהול יישומים // תצורת שרת טופס.
  • בפעם הראשונה הטופס ניסה לגשת לשירות אינטרנט, זה לוקח זמן, לעיתים, . זה היה פסק זמן. אני לכיסו עם הגדרות תצורת שרת טופס כדי להרחיב את הגדרות זמן קצוב ונראה את זה כדי לעזור.

הקוד:

שימוש מערכת;
שימוש System. web;
שימוש System.Web.Services;
שימוש System.Web.Services.Protocols;
שימוש Microsoft.SharePoint;
שימוש System.Configuration;

[WebService(Namespace = ב- "http://www.conchango.com/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
הציבור מחלקה PoService : System.Web.Services.WebService
{
הציבור PoService () {

//ההערה השורה הבאה, אם באמצעות רכיבים המיועדים
//InitializeComponent();
}

/// <סיכום>
/// להשיג את מספר הזמנת הרכש הבאה של רשימת בקרת sharepoint מספר פו.
/// להגדיל את מספר הזמנת הרכש ברשימה הזאת.
/// </סיכום>
/// <החזרת></החזרת>
[WebMethod]
הציבור מחרוזת GetNextPoNumber()
{
מחרוזת SpPoControlSiteName; // שם האתר מוס בפועל שמארח את רשימת בקרת פו.
מחרוזת SpPoControlListName; // שם רשימת מוס בפועל המכיל את הפקד פו.

SpPoControlSiteName = ConfigurationSettings.AppSettings["PoControlListHostingSite"].ToString();
SpPoControlListName = ConfigurationSettings.AppSettings["PoControlList"].ToString();

מחרוזת nextPoReqNumber = "xyzzy";

שימוש (SPSite האתר = חדש SPSite(SpPoControlSiteName))
{
שימוש (SPWeb אינטרנט = האתר. OpenWeb())
{

Splist.update() currentList = אינטרנט. רשימות[SpPoControlListName];

foreach (SPItem controlItem ב currentList.Items)
{

אם (((מחרוזת)controlItem["ControlField"]).שווה ל-("NextPoNumber"))
{
nextPoReqNumber = (מחרוזת)controlItem["ControlValue"];

int int_nextPoReqNumber;
int_nextPoReqNumber = המר.ToInt32(nextPoReqNumber);

int_nextPoReqNumber ;

controlItem["ControlValue"] = int_nextPoReqNumber;
controlItem.Update();
}

} // איתור, קריאה ועדכון את מספר הזמנת הרכש ברשימה.


} // באמצעות האינטרנט spweb = site.openweb()
} // שימוש באתר spsite = spsite חדש(ב- "http://localhost/mizuho")

החזרה nextPoReqNumber;

}
}

תגובה אחת על הפוסט "מוס: עדכון רשימה מותאמת אישית

  1. KSP כתבו:
    פול הי,
    יש לנו מצב דומה מה אתה הרגילים אבל הבעיה היא שאני רוצה להשתמש servie האינטרנט הזה על שרת איזון עומס.ומכאן,כיצד לטפל בבקשות של התרחשות בו-זמנית, במקרה הזה או איך להכין בקשה חדשים. חכה, רק בקשה אחת צריך לעדכן את מספר הרשימה עד אז כל בקשות אחרות צריך להיות que.אנא הודע לי איך להשיג את זה.
    תודה מראש.

תשאיר הודעה

כתובת האימייל שלך לא תפורסם. שדות חובה מסומנים *