Moss: Actualizar a lista personalizada

Hai moitos bos exemplos de actualizar as listas personalizadas a través do SDK. Aquí está aínda outra.

Problema de negocio: Formulario InfoPath foi deseñado que permite que os usuarios insiran as solicitudes de compra en liña. Números petición PO debe ser valores enteiros baseados en secuencias tradicionais e calcula automaticamente.

Business Solution: Crear unha lista MOSS personalizado que contén dúas columnas: "ControlField" and "ControlValue". O valor da columna contén o seguinte número da petición de compra. Note that the generic "control" convención de nomenclatura prevé campos de control futuros que poden ser utilizados segundo a necesidade.

Solución Técnica: Crear un servizo de web acceder polo cliente InfoPath. O servizo web devolve o seguinte número da petición de compra e actualiza o valor da lista.

Leccións aprendidas:

  • Engadindo este servizo web como fonte de datos para o formulario do InfoPath, Eu penso necesario convertelo en un UDC e almacena-lo nunha biblioteca de conexión de datos.
  • Eu tamén penso que é necesario para permitir cruz dominio script vía central de administración de servizos de // xestión de aplicacións // configuración do servidor de forma.
  • A primeira vez que o formulario intentou acceder o servizo web, leva un tempo e de cando en vez, sería o tempo de espera. Eu xogaba con as opcións de configuración do servidor de forma a ampliar a configuración de tempo de espera e que parecía axudar.

O código:

utilización Sistema;
utilización System.Web;
utilización System.Web.Services;
utilización System.Web.Services.Protocols;
utilización Microsoft.SharePoint;
utilización System.Configuration;

[WebService(Namespace = "Http://www.conchango.com/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
público clase PoService : System.Web.Services.WebService
{
público PoService () {

//Uncomment the following line if using designed components
//InitializeComponent();
}

/// <resumo>
/// Obtain the next PO number from the sharepoint po number control list.
/// Increment the PO number in that list.
/// </resumo>
/// <returns></returns>
[WebMethod]
público corda GetNextPoNumber()
{
corda SpPoControlSiteName; // Name of the actual MOSS site that hosts the PO Control list.
corda SpPoControlListName; // Name of the actual MOSS list containing the Po control.

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

corda nextPoReqNumber = "Xyzzy";

utilización (SPSite site = novo SPSite(SpPoControlSiteName))
{
utilización (SPWeb web = site.OpenWeb())
{

SPList currentList = web.Lists[SpPoControlListName];

foreach (SPItem controlItem en currentList.Items)
{

se (((corda)controlItem["ControlField"]).Igual("NextPoNumber"))
{
nextPoReqNumber = (corda)controlItem["ControlValue"];

int int_nextPoReqNumber;
int_nextPoReqNumber = Converter.ToInt32(nextPoReqNumber);

int_nextPoReqNumber ;

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

} // Locating, reading and updating the PO number in the list.


} // using spweb web = site.openweb()
} // using spsite site = new spsite("Http://localhost/mizuho")

volver nextPoReqNumber;

}
}

Un pensamento sobre "Moss: Actualizar a lista personalizada

  1. KSP wrote:
    Ola Paulo,
    Temos unha situación semellante que está mencionando, pero o problema é que quero usar este servie web nun equilibrio server.Hence carga,como xestionar as peticións de competencia, neste caso, ou como facer a nova proposta e espera só unha proposta que actualizar o número da lista ata entón todas as outras solicitudes deben estar en que.Please deixe-me saber como conseguilo.
    Grazas anticipadamente.
    Responder

Deixe unha resposta

Enderezo de correo electrónico non será publicado. Os campos obrigatorios están marcados *