2009-07-16 14 views
5

lo que he hechoSharepoint 2007 AddList y AddListFromFeature faltan columnas de plantilla y el contenido de datos

  • Dentro de SharePoint creé una lista basada en la plantilla de Tareas del proyecto
  • He eliminado la mayoría de las columnas predeterminadas, y añadido nuevas columnas personalizadas
  • que añaden datos utilizando el nuevo formato
  • Entonces hizo un "guardar como plantilla" y optó por guardar la plantilla con el contenido

lo que está funcionando

Ahora, cuando uso esa plantilla para crear una nueva lista de interior de SharePoint funciona perfectamente. Las columnas personalizadas están presentes y todos los datos se completan como se esperaba.

Lo que no está funcionando

Sin embargo, cuando uso los AddList o AddListFromFeature métodos puestos a disposición por los servicios web de SharePoint se crea la nueva lista, pero se basa simplemente fuera de la plantilla de Tareas del proyecto original con columnas predeterminadas y sin datos!

lo que he tratado

  • He intentado siguiendo la sugerencia in the article from Phase 2 de configurar una plantilla de ID personalizado, pero que sólo me impedía el uso de la plantilla en absoluto (ya no estaba en la lista cuando hago una "Crear").
  • Todavía estoy tratando de averiguar si this article applies - parece ser un problema similar, pero se aplica a los sitios en lugar de listas.
  • Encontré que otra persona era having the same problem hace aproximadamente un año.

de configuración del sistema

Trabajar con SharePoint 2007 (creo?), Usando PHP con NuSOAP a conectar. La conexión definitivamente funciona, ya que he agregado elementos a listas, creado listas y leído datos.

Ejemplos de código

Solicitar - en contra de la Fase 2 Plantilla método anterior

<?xml version="1.0" encoding="ISO-8859-1"?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns2034="http://tempuri.org"><SOAP-ENV:Body> 
<AddListFromFeature xmlns="http://schemas.microsoft.com/sharepoint/soap/"> 
    <listName>2Test Milestone Release</listName> 
    <description>Testing this out</description> 
    <featureID>{00BFEA71-513D-4CA0-96C2-6A47775C0119}</featureID> 
    <templateID>151</templateID> 
</AddListFromFeature></SOAP-ENV:Body></SOAP-ENV:Envelope> 

Respuesta - se deteriore por templateId no ser reconocido

<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><soap:Fault><faultcode>soap:Server</faultcode><faultstring>Exception of type 'Microsoft.SharePoint.SoapServer.SoapServerException' was thrown.</faultstring><detail><errorstring xmlns="http://schemas.microsoft.com/sharepoint/soap/">Cannot complete this action. 

Please try again.</errorstring><errorcode xmlns="http://schemas.microsoft.com/sharepoint/soap/">0x81072101</errorcode></detail></soap:Fault></soap:Body></soap:Envelope> 

estoy perplejo! Entonces, si puedes ayudar, ¡sería una persona muy feliz! ¡Gracias por adelantado!

+0

[1]: http://msdn.microsoft.com/en-us/library/lists.lists.addlist.aspx [2]: http://msdn.microsoft.com/en-us/library /lists.lists.addlistfromfeature.aspx [3]: http://www.phase2.com/blog/?p = 89 [4]: ​​http://blogs.msdn.com/harsh/archive/2006/08/04/687984.aspx [5]: http://social.technet.microsoft.com/Forums/ es-ES/sharepointdevelopment/thread/9a8da931-ca44-45be-8d4e-e762adcde238 – Joshua

+0

Ha ordenado los enlaces por usted. Muy buena primera pregunta: +1. –

+0

Gracias Alex! Ahora solo necesito algunas respuestas :) – Joshua

Respuesta

1

Perseguiría por qué no puede crear la lista a través de la interfaz en primer lugar, estas dos llamadas al servicio web no parecen incluir el parámetro importante al crear plantillas personalizadas, analicemos las cadenas de consulta:

Tareas nuevo proyecto (de la caja)

http://site/_layouts/new.aspx?FeatureId= {00bfea71-513d-4ca0-96c2-6a47775c0119} & ListTemplate = 150

Tareas Nueva encargo del proyecto (guardado en la galería de plantillas de listas)

http://site/_layouts/new.aspx? CustomTemplate = PT6.stp & FeatureID = {} 00bfea71-513d-4ca0-96c2-6a47775c0119 & ListTemplate = 150

Tareas Nueva encargo del proyecto (manifest.xml editado a 151)

http://site/_layouts/new.aspx? CustomTemplate = PT6.stp & FeatureID = {} 00bfea71-513d-4ca0-96c2-6a47775c0119 & ListTemplate =

Todos ellos trabajan, por lo que mi posición aquí es que el servicio Web es un no, no por encargo plantillas, o tiene alguna magia secreta (común en las definiciones de listas) ya que especificar solo el ListTemplate sin ser CUSTOM explícitamente no funcionará incluso en la UI.

Si no puede moverse con esta aparente limitación, mis sugerencias son:

  1. .NET, cabe destacar que tiene this post vudú en el primer comentario si sucede conseguir el mismo error
  2. Haga un IFRAME con http://site/_layouts/new.aspx? CustomTemplate = PT6.stp & FeatureId = {00bfea71-513d-4ca0-96c2-6a47775c0119} & ListTemplate = 150 como fuente y rellene los campos usando javascript, y luego active el botón Aceptar haga clic, realice una transición de carga de página completa y incluso se verá bien.

El método 2 debe hacerse desde el mismo dominio, si no ejecuta su PHP desde el mismo dominio (poco probable) necesita crear una página dentro del sitio de SharePoint para contener este truco, puede ser como simple como una página de elementos web con un elemento web del editor de contenido, usted lee algunos parámetros de la cadena de consulta, los coloca en los campos, desencadena el OK y espera a que la página cambie para que pueda redirigir a una página de "éxito".

Editar: Tengo curiosidad y mire a la fuente de New.aspx, tiene este pequeño fragmento (bIsCustomTemplate = strCustomTemplate = null, strCustomTemplate = cadena de consulta "CustomTemplate"!):

Miré el código desensamblado, pero no creo que podamos publicarlo aquí, pero solo prueba que la interfaz de usuario lo construye a partir de una publicación (Request.Form) y busca el parámetro CustomTemplate, y el servicio web solo tiene esos métodos donde usted puede no especifique una plantilla personalizada

Cuestiones relacionadas