Overview
This page documents all GraphQL mutations for creating and updating supply management entities including SOLPEDs, requirements, receptions, distributions, and related operations.
SOLPED Mutations
CreateSolpedSupply
Create a new SOLPED (purchase requisition).
Location: Mutation.cs:839
SOLPED data to createUser creating the requisition
Initial status (e.g., “Draft”, “Pending”)
SAP code (optional, can be assigned later)
Purchase order number (assigned after approval)
Creation timestamp (auto-set if not provided)
Update timestamp (auto-set if not provided)
The created SOLPED with generated IdSolped
Example Mutation:
mutation {
createSolpedSupply(solped: {
id_usuario: 123
id_categoria: 5
id_compania: 1
Proveedor: "PROV001"
Estado: "Draft"
claseDocumento: "NB"
}) {
IdSolped
CodigoSap
Estado
CreatedAt
}
}
UpdateSolpedSupply
Update an existing SOLPED with SAP integration.
Location: Mutation.cs:933
SOLPED data to update (must include IdSolped)SOLPED identifier to update
itemsCodIva
CodivaItemInput[]
required
Tax code items for SAP integration
The updated SOLPED with SAP integration results
Note: This mutation includes SAP Procurement API integration to register the SOLPED in the ERP system.
Requirement Mutations
CreateRequerimientoSupply
Create a new requirement (line item) within a SOLPED.
Location: Mutation.cs:813
requerimiento
IndSupRequerimientoDTO
required
Requirement data to createUnit of measure identifier
Purchasing organization code
Account assignment type (e.g., “K” for cost center)
Asset information (if applicable)
Detailed item description
Warehouse/storage location code
Material code (SAP material master)
Primary cost center identifier
Whether distribution is by percentage (true) or fixed value (false)
Purchase order number (if already assigned)
The created requirement with generated IdRequerimiento
Example Mutation:
mutation {
createRequerimientoSupply(requerimiento: {
id_solped: 456
id_tipo_solicitud: 1
id_medida: 3
Compras: "0001"
Imputacion: "K"
Articulos: "Office Supplies - Printer Paper"
Descripcion: "A4 White Paper 500 sheets per ream"
Almacen: "WH01"
Material: "MAT-12345"
id_centro_costo: 100
Cantidad: 50
Unidades: 50
Valor: 5.50
Porcentaje: false
FechaEntrega: "2026-04-15T00:00:00"
}) {
IdRequerimiento
Articulos
Cantidad
Valor
FechaEntrega
}
}
UpdateRequerimientoSupply
Update an existing requirement and sync with SAP.
Location: Mutation.cs:1440
requerimiento
IndSupRequerimientoDTO
required
Requirement data to update (must include IdRequerimiento)Requirement identifier to update
The updated requirement with SAP integration results
Note: This mutation triggers SAP Procurement API integration to update or create the corresponding SAP requisition.
Distribution Mutations
CreateDistribucionesSupply
Create cost center and account distributions for requirements.
Location: Mutation.cs:891
distribuciones
IndSupDistribucionDTO[]
required
List of distribution records to createGeneral ledger account identifier
Distribution value (percentage 0-100 if Porcentaje=true, or fixed amount)
List of created distribution records with generated identifiers
Example Mutation:
mutation {
createDistribucionesSupply(distribuciones: [
{
id_requerimiento: 789
id_cuenta_mayor: 50
id_centro_costo: 100
Valor: 60.0
},
{
id_requerimiento: 789
id_cuenta_mayor: 51
id_centro_costo: 101
Valor: 40.0
}
]) {
IdDistribucion
Valor
CentroCosto {
Nombre
}
}
}
Note: When Porcentaje=true on the parent requirement, the sum of all Valor fields should equal 100.
Reception Mutations
CreateRecepcionSupply
Create a goods receipt document.
Location: Mutation.cs:857
recepcion
IndSupRecepcionDTO
required
Reception data to createHeader text describing the reception
Reception code (can be assigned from SAP)
Generated reception identifier
Example Mutation:
mutation {
createRecepcionSupply(recepcion: {
TextoCabecera: "Goods Receipt - Purchase Order 4500012345"
CodRecepcion: "REC-2026-001"
}) {
IdRecepcion
TextoCabecera
CodRecepcion
}
}
CreateCantidadesSupply
Record received quantities linking receptions to requirements.
Location: Mutation.cs:877
cantidades
IndSupCantidadDTO[]
required
List of quantity records to createReception document identifier
List of created quantity records with generated identifiers
Example Mutation:
mutation {
createCantidadesSupply(cantidades: [
{
id_requerimiento: 789
id_recepcion: 12
Cantidad: 45.0
},
{
id_requerimiento: 790
id_recepcion: 12
Cantidad: 30.0
}
]) {
IdCantidad
Cantidad
Requerimiento {
Articulos
}
}
}
RegistroRecepcionSupply
Register goods receipt in SAP MM module.
Location: Mutation.cs:868
objeto
ApiRecepcionRequestDto
required
SAP reception request object with header and line items
ApiRecepcionResponseContainer
Whether the SAP posting was successful
Response message from SAP
SAP material document number (if successful)
List of error messages (if any)
Note: This mutation integrates with SAP to create a material document (MIGO transaction equivalent).
Purchase Order Mutations
CreateOcProcurment
Create a purchase order in SAP from an approved SOLPED.
Location: Mutation.cs:906
Incoterm code (e.g., “EXW”, “FOB”, “CIF”)
Purchasing organization code
Document class in SAP (e.g., “NB”, “ZNB”)
items
ApiOcRequestDetailDto[]
required
List of purchase order line itemsLine item number (will be multiplied by 10 in SAP format)
Delivery date (format: YYYYMMDD)
Whether the purchase order was created successfully
SAP purchase order number (if successful)
Response message from SAP
List of error messages (if any)
Example Mutation:
mutation {
createOcProcurment(
solped: "1000123456"
proveedor: "PROV001"
incoterm: "EXW"
organizacion: "0001"
clasedocumento: "NB"
items: [
{
posicion: "1"
material: "MAT-12345"
cantidad: "50"
precio: "5.50"
centroCosto: "CC100"
cuentaMayor: "GL50"
fechaEntrega: "20260415"
}
]
) {
success
purchaseOrder
message
}
}
Note:
- Line item positions are automatically multiplied by 10 (SAP convention: 10, 20, 30…)
- Requires valid SAP credentials and connectivity
- SOLPED must be approved before creating purchase order
PQR Mutations
CreatePqr
Create a PQR (inquiry, complaint, or claim) related to a SOLPED.
Location: Mutation.cs:632
PQR data to createType of request (1=Petición, 2=Queja, 3=Reclamo)
Related SOLPED identifier
Resolution identifier (filled when resolved)
Attachment file path or URL
The created PQR with generated IdPqr and AuFechaCreacion timestamp
Example Mutation:
mutation {
createPqr(solicitud: {
id_tipo_solicitud: 2
id_solped: 123
id_motivo: 5
Asunto: "Delayed delivery of materials"
Descripcion: "The materials from PO 4500012345 were supposed to arrive on March 1st but have not been delivered yet. Please investigate."
Archivo: "/uploads/pqr/evidence-123.pdf"
}) {
IdPqr
Asunto
AuFechaCreacion
Solped {
CodigoSap
Proveedor
}
}
}
UpdatePqr
Update an existing PQR (typically to add resolution).
Location: Mutation.cs:649
PQR data to update (must include IdPqr)Resolution identifier when closing the PQR
Workflow Example
Here’s a complete workflow for creating a purchase requisition:
# Step 1: Create SOLPED
mutation {
createSolpedSupply(solped: {
id_usuario: 123
id_categoria: 5
id_compania: 1
Proveedor: "PROV001"
Estado: "Draft"
}) {
IdSolped
}
}
# Step 2: Add requirements (repeat for each line item)
mutation {
createRequerimientoSupply(requerimiento: {
id_solped: 456 # From step 1
id_tipo_solicitud: 1
id_medida: 3
Articulos: "Office Paper"
Almacen: "WH01"
Cantidad: 50
Unidades: 50
Valor: 5.50
Porcentaje: true
FechaEntrega: "2026-04-15T00:00:00"
}) {
IdRequerimiento
}
}
# Step 3: Add cost distributions
mutation {
createDistribucionesSupply(distribuciones: [
{
id_requerimiento: 789 # From step 2
id_cuenta_mayor: 50
id_centro_costo: 100
Valor: 60.0
},
{
id_requerimiento: 789
id_cuenta_mayor: 51
id_centro_costo: 101
Valor: 40.0
}
]) {
IdDistribucion
}
}
# Step 4: Update SOLPED to submit for approval
mutation {
updateSolpedSupply(
solped: { IdSolped: 456, claseDocumento: "NB" }
itemsCodIva: [{ item: "1", codiva: "I1" }]
) {
CodigoSap
Estado
}
}
# Step 5: After approval, create purchase order
mutation {
createOcProcurment(
solped: "1000123456" # SAP code from step 4
proveedor: "PROV001"
incoterm: "EXW"
organizacion: "0001"
clasedocumento: "NB"
items: [{ posicion: "1", cantidad: "50", precio: "5.50" }]
) {
purchaseOrder
}
}