'AnalisiAbilitate' ]; // Debug: salva URL usato $base_url = 'https://93.43.5.102/limsapi/api/odata/'; $query = http_build_query($options); $query = urldecode($query); // rende leggibile $expand invece di %24expand $full_url = $base_url . $endpoint . ($query ? '?' . $query : ''); file_put_contents(__DIR__ . '/last_url_analisi_abilitate.txt', $full_url . PHP_EOL, FILE_APPEND); // Chiamata API $data = $api->get($endpoint, $options); // Recupera AnalisiAbilitate dalla risposta $analisiAbilitate = $data['AnalisiAbilitate'] ?? []; // Alcune API OData possono restituire collection dentro "value" if (isset($analisiAbilitate['value']) && is_array($analisiAbilitate['value'])) { $analisiAbilitate = $analisiAbilitate['value']; } // Cerca se il RecordKey / IdAnalisi che stai usando รจ effettivamente assegnabile $matches = []; foreach ($analisiAbilitate as $analisi) { $recordKey = isset($analisi['RecordKey']) ? (string)$analisi['RecordKey'] : ''; $idAnalisi = isset($analisi['IdAnalisi']) ? (string)$analisi['IdAnalisi'] : ''; if ($recordKey === $targetRecordKey || $idAnalisi === $targetIdAnalisi) { $matches[] = $analisi; } } // Output diagnostico $output = [ 'success' => true, 'idCampione' => $idCampione, 'request_url' => $full_url, 'targetRecordKey' => $targetRecordKey, 'targetIdAnalisi' => $targetIdAnalisi, 'enabled_analyses_count' => is_array($analisiAbilitate) ? count($analisiAbilitate) : 0, 'target_found' => count($matches) > 0, 'target_matches' => $matches, 'analisi_abilitate' => $analisiAbilitate, 'raw_response' => $data ]; // Salva il JSON in locale file_put_contents( __DIR__ . '/analisi_abilitate_campione_749027_response.json', json_encode($output, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE) ); echo json_encode($output, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE); } catch (Exception $e) { file_put_contents( __DIR__ . '/error_log_analisi_abilitate.txt', date('Y-m-d H:i:s') . ' - ' . $e->getMessage() . PHP_EOL, FILE_APPEND ); http_response_code(500); echo json_encode([ 'success' => false, 'error' => $e->getMessage() ], JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE); }